]> git.kaiwu.me - nginx.git/commit
FastCGI: ensure HTTP_HOST is set to the requested target host.
authorAndrew Clayton <a.clayton@nginx.com>
Sat, 13 Dec 2025 07:05:27 +0000 (07:05 +0000)
committerAndrew Clayton <a.clayton@nginx.com>
Thu, 15 Jan 2026 23:04:38 +0000 (23:04 +0000)
commit71b18973b2b5ea29ed27b47fc0e619b4df533b60
treeb92ff0db9a6f4f8ffcb671b3a86465cb6eec7697
parent6a67f71a4a78edb662c190af93ac6d3d680e107a
FastCGI: ensure HTTP_HOST is set to the requested target host.

Previously, the HTTP_HOST environment variable was constructed from the
Host request header field, which doesn't work well with HTTP/2 and
HTTP/3 where Host may be supplanted by the ":authority" pseudo-header
field per RFC 9110, section 7.2. Also, it might give an incorrect
HTTP_HOST value from HTTP/1.x requests given in the absolute form, in
which case the Host header must be ignored by the server, per RFC 9112,
section 3.2.2.

The fix is to redefine the HTTP_HOST default from a protocol-specific
value given in the $host variable. This will now use the Host request
header field, ":authority" pseudo-header field, or request line target
URI depending on request HTTP version.

Also the CGI specification (RFC 3875, 4.1.18) notes

  The server SHOULD set meta-variables specific to the protocol and
  scheme for the request. Interpretation of protocol-specific
  variables depends on the protocol version in SERVER_PROTOCOL.

Closes: https://github.com/nginx/nginx/issues/256
Closes: https://github.com/nginx/nginx/issues/455
Closes: https://github.com/nginx/nginx/issues/912
src/http/modules/ngx_http_fastcgi_module.c