配置

location /tech/ { 
     proxy_pass http://blog_servers/tech/ ;
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header Host $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_pass_request_headers on; 
}

内置变量

这里,$http_host 和 $remote_addr 都是 nginx 的导出变量,可以在配置文件中直接使用。

如果 Host 没有出现在 HTTP header 中,则 $http_host 的值为空,而 $host 和 $http_host 同样表示请求头中的 Host 字段,但若 Host 字段不存在,则以实际处理的虚拟主机 server 的 server_name 替代。

因此一般而言,会用 $host 代替 $http_host 变量,从而避免 http 请求中丢失 Host 头部的情况下 Host 不被重写的失误。 

docs


codecraft
11.9k 声望2k 粉丝

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下...