DOC: fix some typos

[wt: ~25 typos, most of which should be eligible for backporting]
This commit is contained in:
Patrick Starr 2017-10-09 13:17:12 +07:00 committed by Willy Tarreau
parent bf08beb2a3
commit dce734e10f
1 changed files with 24 additions and 24 deletions

View File

@ -75,7 +75,7 @@ to the mailing list whose responses are present in these documents.
- intro.txt (this document) : it presents the basics of load balancing, - intro.txt (this document) : it presents the basics of load balancing,
HAProxy as a product, what it does, what it doesn't do, some known traps to HAProxy as a product, what it does, what it doesn't do, some known traps to
avoid, some OS-specific limitations, how to get it, how it evolves, how to avoid, some OS-specific limitations, how to get it, how it evolves, how to
ensure you're running with all known fixes how to update it, complements and ensure you're running with all known fixes, how to update it, complements and
alternatives. alternatives.
- management.txt : it explains how to start haproxy, how to manage it at - management.txt : it explains how to start haproxy, how to manage it at
@ -130,10 +130,10 @@ activity is by far the best known case of load balancing.
A load balancer may act : A load balancer may act :
- at the link level : this is called link load balancing, and it consists in - at the link level : this is called link load balancing, and it consists in
chosing what network link to send a packet to; choosing what network link to send a packet to;
- at the network level : this is called network load balancing, and it - at the network level : this is called network load balancing, and it
consists in chosing what route a series of packets will follow; consists in choosing what route a series of packets will follow;
- at the server level : this is called server load balancing and it consists - at the server level : this is called server load balancing and it consists
in deciding what server will process a connection or request. in deciding what server will process a connection or request.
@ -222,7 +222,7 @@ after an error occurs.
Other methods consist in sampling the production traffic sent to a destination Other methods consist in sampling the production traffic sent to a destination
to observe if it is processed correctly or not, and to evince the components to observe if it is processed correctly or not, and to evince the components
which return inappropriate responses. However this requires to sacrify a part which return inappropriate responses. However this requires to sacrifice a part
of the production traffic and this is not always acceptable. A combination of of the production traffic and this is not always acceptable. A combination of
these two mechanisms provides the best of both worlds, with both of them being these two mechanisms provides the best of both worlds, with both of them being
used to detect a fault, and only health checks to detect the end of the fault. used to detect a fault, and only health checks to detect the end of the fault.
@ -472,13 +472,13 @@ will be detailed in the next section.
-------------------------------- --------------------------------
Proxying is the action of transferring data between a client and a server over Proxying is the action of transferring data between a client and a server over
two independant connections. The following basic features are supported by two independent connections. The following basic features are supported by
HAProxy regarding proxying and connection management : HAProxy regarding proxying and connection management :
- Provide the server with a clean connection to protect them against any - Provide the server with a clean connection to protect them against any
client-side defect or attack; client-side defect or attack;
- Listen to multiple IP address and/or ports, even port ranges; - Listen to multiple IP addresses and/or ports, even port ranges;
- Transparent accept : intercept traffic targetting any arbitrary IP address - Transparent accept : intercept traffic targetting any arbitrary IP address
that doesn't even belong to the local system; that doesn't even belong to the local system;
@ -538,8 +538,8 @@ making it quite complete are :
- authentication of the backend server ensures the backend server is the real - authentication of the backend server ensures the backend server is the real
one and not a man in the middle; one and not a man in the middle;
- authentication with the backend server lets the backend server it's really - authentication with the backend server lets the backend server know it's
the expected haproxy node that is connecting to it; really the expected haproxy node that is connecting to it;
- TLS NPN and ALPN extensions make it possible to reliably offload SPDY/HTTP2 - TLS NPN and ALPN extensions make it possible to reliably offload SPDY/HTTP2
connections and pass them in clear text to backend servers; connections and pass them in clear text to backend servers;
@ -571,7 +571,7 @@ making it quite complete are :
HAProxy focuses a lot on availability. As such it cares about servers state, HAProxy focuses a lot on availability. As such it cares about servers state,
and about reporting its own state to other network components : and about reporting its own state to other network components :
- Servers state is continuously monitored using per-server parameters. This - Servers' state is continuously monitored using per-server parameters. This
ensures the path to the server is operational for regular traffic; ensures the path to the server is operational for regular traffic;
- Health checks support two hysteresis for up and down transitions in order - Health checks support two hysteresis for up and down transitions in order
@ -587,7 +587,7 @@ and about reporting its own state to other network components :
- Agents may be deployed on the server to monitor load and health : a server - Agents may be deployed on the server to monitor load and health : a server
may be interested in reporting its load, operational status, administrative may be interested in reporting its load, operational status, administrative
status independantly from what health checks can see. By running a simple status independently from what health checks can see. By running a simple
agent on the server, it's possible to consider the server's view of its own agent on the server, it's possible to consider the server's view of its own
health in addition to the health checks validating the whole path; health in addition to the health checks validating the whole path;
@ -642,7 +642,7 @@ ensure the best global service continuity :
a takeover is the most seamless possible; a takeover is the most seamless possible;
- Integrates well with standard VRRP daemon keepalived : HAProxy easily tells - Integrates well with standard VRRP daemon keepalived : HAProxy easily tells
keepalived about its state and copes very will with floating virtual IP keepalived about its state and copes very well with floating virtual IP
addresses. Note: only use IP redundancy protocols (VRRP/CARP) over cluster- addresses. Note: only use IP redundancy protocols (VRRP/CARP) over cluster-
based solutions (Heartbeat, ...) as they're the ones offering the fastest, based solutions (Heartbeat, ...) as they're the ones offering the fastest,
most seamless, and most reliable switchover. most seamless, and most reliable switchover.
@ -710,7 +710,7 @@ multiple load balancing nodes in that they don't require any replication :
- stickiness information can come from anything that can be seen within a - stickiness information can come from anything that can be seen within a
request or response, including source address, TCP payload offset and request or response, including source address, TCP payload offset and
length, HTTTP query string elements, header field values, cookies, and so length, HTTP query string elements, header field values, cookies, and so
on... on...
- stick-tables are replicated between all nodes in a multi-master fashion ; - stick-tables are replicated between all nodes in a multi-master fashion ;
@ -799,7 +799,7 @@ following ones are the most commonly used :
- string conversion : extract substrings at fixed positions, fixed length, - string conversion : extract substrings at fixed positions, fixed length,
extract specific fields around certain delimiters, extract certain words, extract specific fields around certain delimiters, extract certain words,
change case, apply regex-based substitution ; change case, apply regex-based substitution;
- date conversion : convert to http date format, convert local to UTC and - date conversion : convert to http date format, convert local to UTC and
conversely, add or remove offset; conversely, add or remove offset;
@ -824,7 +824,7 @@ addresses but they can be used for various other purposes.
Part of their strength comes from being updatable on the fly either from the CLI Part of their strength comes from being updatable on the fly either from the CLI
or from certain actions using other samples, making them capable of storing and or from certain actions using other samples, making them capable of storing and
retrieving information between subsequent accesses. Another strength comes from retrieving information between subsequent accesses. Another strength comes from
the binary tree based indexation which makes them extremely fast event when they the binary tree based indexation which makes them extremely fast even when they
contain hundreds of thousands of entries, making geolocation very cheap and easy contain hundreds of thousands of entries, making geolocation very cheap and easy
to set up. to set up.
@ -866,7 +866,7 @@ condition is not evaluated.
There is no practical limit to the number of declared ACLs, and a handful of There is no practical limit to the number of declared ACLs, and a handful of
commonly used ones are provided. However experience has shown that setups using commonly used ones are provided. However experience has shown that setups using
a lot of named ACLs are quite hard to troubleshoot and that sometimes using a lot of named ACLs are quite hard to troubleshoot and that sometimes using
anynmous ACLs inline is easier as it requires less references out of the scope anonymous ACLs inline is easier as it requires less references out of the scope
being analysed. being analysed.
@ -1037,7 +1037,7 @@ levels while they're still finalizing their startup or compiling some classes.
Regarding the protocol-level protection, it is possible to relax the HTTP parser Regarding the protocol-level protection, it is possible to relax the HTTP parser
to accept non stardard-compliant but harmless requests or responses and even to to accept non stardard-compliant but harmless requests or responses and even to
fix them. This allows bogus applications to be accessible while a fix is being fix them. This allows bogus applications to be accessible while a fix is being
developped. In parallel, offending messages are completely captured with a developed. In parallel, offending messages are completely captured with a
detailed report that help developers spot the issue in the application. The most detailed report that help developers spot the issue in the application. The most
dangerous protocol violations are properly detected and dealt with and fixed. dangerous protocol violations are properly detected and dealt with and fixed.
For example malformed requests or responses with two Content-length headers are For example malformed requests or responses with two Content-length headers are
@ -1078,7 +1078,7 @@ process state, connection counts, queue status, retries count, detailed
stickiness actions and disconnect reasons, header captures with a safe output stickiness actions and disconnect reasons, header captures with a safe output
encoding. It is then possible to extend or replace this format to include any encoding. It is then possible to extend or replace this format to include any
sampled data, variables, captures, resulting in very detailed information. For sampled data, variables, captures, resulting in very detailed information. For
example it is possible to log the number cumulated requests for this client or example it is possible to log the number of cumulated requests for this client or
the number of different URLs for the client. the number of different URLs for the client.
The log level may be adjusted per request using standard ACLs, so it is possible The log level may be adjusted per request using standard ACLs, so it is possible
@ -1196,7 +1196,7 @@ deployed :
Depending on the operating system HAProxy is deployed on, certain extra features Depending on the operating system HAProxy is deployed on, certain extra features
may be available or needed. While it is supported on a number of platforms, may be available or needed. While it is supported on a number of platforms,
HAProxy is primarily developped on Linux, which explains why some features are HAProxy is primarily developed on Linux, which explains why some features are
only available on this platform. only available on this platform.
The transparent bind and connect features, the support for binding connections The transparent bind and connect features, the support for binding connections
@ -1286,7 +1286,7 @@ per volume unit) than with small objects (many requests per volume unit). This
explains why maximum bandwidth is always measured with large objects, while explains why maximum bandwidth is always measured with large objects, while
request rate or connection rates are measured with small objects. request rate or connection rates are measured with small objects.
Some operations scale well on multiple process spread over multiple processors, Some operations scale well on multiple processes spread over multiple processors,
and others don't scale as well. Network bandwidth doesn't scale very far because and others don't scale as well. Network bandwidth doesn't scale very far because
the CPU is rarely the bottleneck for large objects, it's mostly the network the CPU is rarely the bottleneck for large objects, it's mostly the network
bandwidth and data busses to reach the network interfaces. The connection rate bandwidth and data busses to reach the network interfaces. The connection rate
@ -1348,7 +1348,7 @@ renegociation, while it's only divided by 3 between HTTP keep-alive and HTTP
close. Another good rule of thumb is to remember that a high frequency core close. Another good rule of thumb is to remember that a high frequency core
with AES instructions can do around 5 Gbps of AES-GCM per core. with AES instructions can do around 5 Gbps of AES-GCM per core.
Having more core rarely helps (except for TLS) and is even counter-productive Having more cores rarely helps (except for TLS) and is even counter-productive
due to the lower frequency. In general a small number of high frequency cores due to the lower frequency. In general a small number of high frequency cores
is better. is better.
@ -1374,7 +1374,7 @@ which new branches are derived once the code is considered stable. A lot of web
sites run some development branches in production on a voluntarily basis, either sites run some development branches in production on a voluntarily basis, either
to participate to the project or because they need a bleeding edge feature, and to participate to the project or because they need a bleeding edge feature, and
their feedback is highly valuable to fix bugs and judge the overall quality and their feedback is highly valuable to fix bugs and judge the overall quality and
stability of the version being developped. stability of the version being developed.
The new branches that are created when the code is stable enough constitute a The new branches that are created when the code is stable enough constitute a
stable version and are generally maintained for several years, so that there is stable version and are generally maintained for several years, so that there is
@ -1393,7 +1393,7 @@ complete version includes one or two sub-version numbers indicating the level of
fix. For example, version 1.5.14 is the 14th fix release in branch 1.5 after fix. For example, version 1.5.14 is the 14th fix release in branch 1.5 after
version 1.5.0 was issued. It contains 126 fixes for individual bugs, 24 updates version 1.5.0 was issued. It contains 126 fixes for individual bugs, 24 updates
on the documentation, and 75 other backported patches, most of which were needed on the documentation, and 75 other backported patches, most of which were needed
to fix the aforementionned 126 bugs. An existing feature may never be modified to fix the aforementioned 126 bugs. An existing feature may never be modified
nor removed in a stable branch, in order to guarantee that upgrades within the nor removed in a stable branch, in order to guarantee that upgrades within the
same branch will always be harmless. same branch will always be harmless.
@ -1482,7 +1482,7 @@ Apache is the de-facto standard HTTP server. It's a very complete and modular
project supporting both file serving and dynamic contents. It can serve as a project supporting both file serving and dynamic contents. It can serve as a
frontend for some application servers. In can even proxy requests and cache frontend for some application servers. In can even proxy requests and cache
responses. In all of these use cases, a front load balancer is commonly needed. responses. In all of these use cases, a front load balancer is commonly needed.
Apache can work in various modes, certain being heavier than other ones. Certain Apache can work in various modes, some being heavier than others. Certain
modules still require the heavier pre-forked model and will prevent Apache from modules still require the heavier pre-forked model and will prevent Apache from
scaling well with a high number of connections. In this case HAProxy can provide scaling well with a high number of connections. In this case HAProxy can provide
a tremendous help by enforcing the per-server connection limits to a safe value a tremendous help by enforcing the per-server connection limits to a safe value