我正在使用nginx,但在设置反向代理时遇到了问题。
我的nginx.conf是默认的(没有进行任何更改),我的site-available配置如下:
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;
server{1,2}.example.com
吗?如果是,你尝试过使用$proxy_host
而不是$host
吗? - sainaen$host
包含请求的原始值,而$proxy_host
被设置为“backend_hosts”。此外,我在ServerFault上找到了一个类似的问题,可能(或可能不)有所帮助:http://serverfault.com/questions/598202/make-nginx-to-pass-hostname-of-the-upstream-when-reverseproxying - sainaen