我正在使用nginx,我在设置反向代理时遇到问题。
我的nginx.conf是默认的(没有对它进行任何更改),我的网站可用配置是:
upstream backend_hosts {
server server1.example.com
server server2.example.com
}
server {
listen 80;
location / {
proxy_set_header Host $host;
proxy_pass http://backend_hosts;
}
}
并且它无法正常工作,它没有通过主机标头。当我做这样的事情时,它有效:
...
proxy_set_header Host server1.exampple.com;
...
我想做这样的事情:
proxy_set_header Host $current_upstream_server_name;
答案 0 :(得分:1)
我们也一直在努力解决这个问题,尽管答案还不完整,但我相信这可能会帮助将来的用户登陆此页面。
可以通过访问上游变量$upstream_http_name
来写入所选上游服务器的IP地址。
http {
upstream backend {
server server1.example.com;
server server2.example.com;
}
server {
location / {
proxy_set_header Host $upstream_http_name;
proxy_pass http://backend;
}
}
}
如果在我们的应用程序中接收到可接受的IP,则上述配置会将该信息传递到代理请求的Host标头中。
可以找到here
上游模块提供的变量的完整列表。