Project

General

Profile

Server feature-flagsDetails » History » Revision 10

Revision 9 (gstrauss, 2021-09-24 09:30) → Revision 10/21 (gstrauss, 2022-02-05 21:34)

h1. server.feature-flags option 

 h2. Description 

 server-wide feature control for selected features (since 1.4.56) 

 @server.feature-flags = ( "..." => "..." )@ 

 Example: 
 @server.feature-flags = ( "server.h2proto" => "enable", "server.h2c" => "enable" )@ 

 h2. Options 

 table{margin-left: 2em}. 
 |_.option |_. description |_. notes | 
 | @"server.h2proto" => "enable"@               | HTTP/2 support (default: enable (since 1.4.59)) | (since 1.4.56) | 
 | @"server.h2c" => "enable"@                   | HTTP/2 cleartext support (@Upgrade: h2c@) (default: enable (since 1.4.59)) 
                                                (requires @"server.h2proto" => "enable"@ to enable) | (since 1.4.56) | 
 | @"server.graceful-shutdown-timeout" => 15@ | max num of secs to wait for existing requests to complete during graceful restart (default: infinite) 
                                                (slow requests are aborted after timeout to allow graceful restart to proceed) | (since 1.4.56) | 
 | @"server.graceful-restart-bg" => "enable"@ | immediate graceful restart while existing requests complete in background process (default: disable) 
                                                (experimental) Recommended: @server.systemd-socket-activation = "enable"@ | (since 1.4.56) | 
 | @"server.clock-jump-restart" => 1800@        | trigger graceful restart if clock jumps more than defined threshold (default: 1800 (30 min)) 
                                                (if triggered, @"server.graceful-shutdown-timeout"@ forced to 5 sec) | (since 1.4.60) | 
 | @"server.errorlog-high-precision" => "disable"@ | high-precision timestamps in errorlog trace (default: disable) | (since 1.4.60) | 

 behavior change; compatibility flags 

 table{margin-left: 2em}. 
 | @"server.h2-discard-backend-1xx" => "disable"@ | discard 1xx responses from backend (other than 101) when client is HTTP/2 (default: disable) 
                                                    default: relay 1xx from backend when client is HTTP/2, e.g. 103 Early Hints | (since 1.4.56) | 
 | @"server.h1-discard-backend-1xx" => "disable"@ | discard 1xx responses from backend (other than 101) when client is HTTP/1.x (default: disable) 
                                                    default: relay 1xx from backend when client is HTTP/1.1, e.g. 103 Early Hints | (since 1.4.56) | 
 | @"server.absolute-dir-redirect" => "disable"@    | use fully qualified URI in automatic redirect to directory (default: disable) 
                                                    default: use relative url-path (better abstraction) in automatic redirect to directory | (since 1.4.56) | 
 | @"proxy.force-http10" => "disable"@              | force proxy requests to backend to use HTTP/1.0 (default: disable) 
                                                    default: send requests to backend using HTTP/1.1 | (since 1.4.56) | 
 | @"ssl.session-cache" => "disable"@               | server-side TLS session id cache (default: disable) 
                                                    default: use TLS session tickets (stateless on server-side) | (since 1.4.56) | 
 | @"cgi.tempfile-accum" => "enable"@               | accumulate request body in single temporary file if not streaming request body to backend (default: enable) 
                                                    default: temporary file is passed as CGI stdin when request body > 64k 
                                                    (can be disabled if backend immediately reads request body into another temporary file, 
                                                    doubling disk space use on a filesystem with limited size) | (since 1.4.60) | 
 | @"chunkqueue.splice" => "enable"@                | @splice()@ data into temporary files (Linux) (default: enable) | (since 1.4.60) | 
 | @"http10.range" => "disable"@                    | allow Range requests sent with HTTP/1.0 (default: disable) 
                                                    Range request header is part of the HTTP/1.1 specification and might be mishandled by HTTP/1.0 proxies | (since 1.4.65) |