1. 程式人生 > >NGINX學習筆記——傳遞請求頭

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;
}