haproxy/doc/close-options.txt
Willy Tarreau 6ba69841f8 MINOR: config: reject long-deprecated "option forceclose"
It's been warning as being deprecated since 2.0-dev4, it's about time
to drop it now. The error message recommends to either remove it or
use "option httpclose" instead. It's still referred to in the old
internal doc about the connection header, which itself seems highly
inaccurate by now.
2021-06-11 16:57:34 +02:00

40 lines
1.8 KiB
Plaintext

2011/04/20 - List of keep-alive / close options with associated behaviours.
PK="http-pretend-keepalive", HC="httpclose", SC="http-server-close",
0 = option not set
1 = option is set
* = option doesn't matter
Options can be split between frontend and backend, so some of them might have
a meaning only when combined by associating a frontend to a backend. Some forms
are not the normal ones and provide a behaviour compatible with another normal
form. Those are considered alternate forms and are marked "(alt)".
SC HC PK Behaviour
0 0 X tunnel mode
0 1 0 passive close, only set headers then tunnel
0 1 1 forced close with keep-alive announce (alt)
1 0 0 server close
1 0 1 server close with keep-alive announce
1 1 0 forced close (alt)
1 1 1 forced close with keep-alive announce (alt)
At this point this results in 4 distinct effective modes for a request being
processed :
- tunnel mode : Connection header is left untouched and body is ignored
- passive close : Connection header is changed and body is ignored
- server close : Connection header set, body scanned, client-side keep-alive
is made possible regardless of server-side capabilities
- forced close : Connection header set, body scanned, connection closed.
The "close" modes may be combined with a fake keep-alive announce to the server
in order to workaround buggy servers that disable chunked encoding and content
length announces when the client does not ask for keep-alive.
Note: "http-pretend-keepalive" alone has no effect. However, if it is set in a
backend while a frontend is in "http-close" mode, then the combination of
both will result in a forced close with keep-alive announces for requests
passing through both.