配置
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 不被重写的失误。