NGINX學習筆記——傳遞請求頭
預設情況,NGINX在代理請求時會重新定義兩個HTTP頭欄位,“Host”和“Connection”,並刪除值為空的頭部欄位。“Host”會被設定為 $proxy_host
變數的值,“Connection”被設定為close。
By default, NGINX redefines two header fields in proxied requests, “Host” and “Connection”, and eliminates the header fields whose values are empty strings. “Host” is set to the $proxy_host variable, and “Connection” is set to close.
要改變這些設定,包括修改其他頭欄位,使用proxy_set_header
指令。這個指令可以在location
或者更高層使用。也可以在特定的server
上下文或者在http塊中,例如:
To change these setting, as well as modify other header fields, use the proxy_set_header directive. This directive can be specified in a location or higher. It can also be specified in a particular server context or in the http block. For example:
location /some/path/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:8000;
}
在這個配置中,“Host”欄位被設定為$host
變數。
In this configuration the “Host” field is set to the $host variable.
要阻止一個頭欄位被傳遞給被代理的伺服器,只要把它設定為空字串。
To prevent a header field from being passed to the proxied server, set it to an empty string as follows:
location /some/path/ {
proxy_set_header Accept-Encoding "";
proxy_pass http://localhost:8000;
}