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。

你可能感兴趣的:(nginx)