Nginx proxy_set_header中$proxy_host,$host,$http_host的區別

在使用Nginx做反向代理的時候,proxy_set_header功能可以設置反向代理後的http header中的host,
那麼常用的幾個設置中$proxy_host, $host,$http_host又都表示什麼意思呢?
Nginx的官網文檔中說下面這兩條是做反代時默認的,所以$proxy_host 自然是 proxy_pass後面跟着的host了

proxy_set_header Host       $proxy_host;
proxy_set_header Connection close;

如果客戶端發過來的請求的header中有’HOST’這個字段時,
$http_host和$host都是原始的’HOST’字段
比如請求的時候HOST的值是www.csdn.net 那麼反代後還是www.csdn.net

如果客戶端發過來的請求的header中沒有有’HOST’這個字段時,
建議使用$host,這表示請求中的server name。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章