DOC: config: Improve documentation about proto/check-proto keywords

This patch adds a description about information provided by "haproxy -vv"
command regarding the available protocols. The description is adapted
depending the context (bind line, server line or health-check).
This commit is contained in:
Christopher Faulet 2021-03-26 14:44:18 +01:00
parent bb69d781c8
commit 982e17dcf5

View File

@ -7899,10 +7899,12 @@ no option disable-h2-upgrade
connection to an HTTP/2 connection if the first request it receives from a
given HTTP connection matches the HTTP/2 connection preface (i.e. the string
"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"). This way, it is possible to support
HTTP/1.x and HTTP/2 clients on a non-SSL connections. This option must be used to
disable the implicit upgrade. Note this implicit upgrade is only supported
for HTTP proxies, thus this option too. Note also it is possible to force the
HTTP/2 on clear connections by specifying "proto h2" on the bind line.
HTTP/1.x and HTTP/2 clients on a non-SSL connections. This option must be
used to disable the implicit upgrade. Note this implicit upgrade is only
supported for HTTP proxies, thus this option too. Note also it is possible to
force the HTTP/2 on clear connections by specifying "proto h2" on the bind
line. Finally, this option is applied on all bind lines. To disable implicit
HTTP/2 upgrades for a specific bind line, it is possible to use "proto h1".
If this option has been enabled in a "defaults" section, it can be disabled
in a specific instance by prepending the "no" keyword before it.
@ -13360,7 +13362,21 @@ proto <name>
Forces the multiplexer's protocol to use for the incoming connections. It
must be compatible with the mode of the frontend (TCP or HTTP). It must also
be usable on the frontend side. The list of available protocols is reported
in haproxy -vv.
in haproxy -vv. The protocols properties are reported : the mode (TCP/HTTP),
the side (FE/BE), the mux name and its flags.
Some protocols report errors on aborts (flag=CLEAN_ABRT). Some others are
subject to the head-of-line blocking on server side (flag=HOL_RISK). Finally
some protocols don't support upgrades (flag=NO_UPG). The HTX compatibility is
also reported (flag=HTX).
Here are the protocols that may be used as argument to a "proto" directive on
a bind line :
h2 : mode=HTTP side=FE|BE mux=H2 flags=HTX|CLEAN_ABRT|HOL_RISK|NO_UPG
h1 : mode=HTTP side=FE|BE mux=H1 flags=HTX|NO_UPG
none : mode=TCP side=FE|BE mux=PASS flags=NO_UPG
Idea behind this option is to bypass the selection of the best multiplexer's
protocol for all connections instantiated from this listening socket. For
instance, it is possible to force the http/2 on clear TCP by specifying "proto
@ -13710,7 +13726,22 @@ check-proto <name>
Forces the multiplexer's protocol to use for the server's health-check
connections. It must be compatible with the health-check type (TCP or
HTTP). It must also be usable on the backend side. The list of available
protocols is reported in haproxy -vv.
protocols is reported in haproxy -vv. The protocols properties are
reported : the mode (TCP/HTTP), the side (FE/BE), the mux name and its flags.
Some protocols report errors on aborts (flag=CLEAN_ABRT). Some others are
subject to the head-of-line blocking on server side (flag=HOL_RISK). Finally
some protocols don't support upgrades (flag=NO_UPG). The HTX compatibility is
also reported (flag=HTX).
Here are the protocols that may be used as argument to a "check-proto"
directive on a server line:
h2 : mode=HTTP side=FE|BE mux=H2 flags=HTX|CLEAN_ABRT|HOL_RISK|NO_UPG
fcgi : mode=HTTP side=BE mux=FCGI flags=HTX|HOL_RISK|NO_UPG
h1 : mode=HTTP side=FE|BE mux=H1 flags=HTX|NO_UPG
none : mode=TCP side=FE|BE mux=PASS flags=NO_UPG
Idea behind this option is to bypass the selection of the best multiplexer's
protocol for health-check connections established to this server.
If not defined, the server one will be used, if set.
@ -14203,7 +14234,22 @@ proto <name>
Forces the multiplexer's protocol to use for the outgoing connections to this
server. It must be compatible with the mode of the backend (TCP or HTTP). It
must also be usable on the backend side. The list of available protocols is
reported in haproxy -vv.
reported in haproxy -vv.The protocols properties are reported : the mode
(TCP/HTTP), the side (FE/BE), the mux name and its flags.
Some protocols report errors on aborts (flag=CLEAN_ABRT). Some others are
subject to the head-of-line blocking on server side (flag=HOL_RISK). Finally
some protocols don't support upgrades (flag=NO_UPG). The HTX compatibility is
also reported (flag=HTX).
Here are the protocols that may be used as argument to a "proto" directive on
a server line :
h2 : mode=HTTP side=FE|BE mux=H2 flags=HTX|CLEAN_ABRT|HOL_RISK|NO_UPG
fcgi : mode=HTTP side=BE mux=FCGI flags=HTX|HOL_RISK|NO_UPG
h1 : mode=HTTP side=FE|BE mux=H1 flags=HTX|NO_UPG
none : mode=TCP side=FE|BE mux=PASS flags=NO_UPG
Idea behind this option is to bypass the selection of the best multiplexer's
protocol for all connections established to this server.