我正在使用 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;
}
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,它不传递主机标头。当我做这样的事情时,它会起作用:
...
proxy_set_header Host server1.exampple.com;
...
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
proxy_set_header Host $current_upstream_server_name;
Run Code Online (Sandbox Code Playgroud)
我们也一直在努力解决这个问题,虽然不是完整的答案,但我相信这可能会帮助未来的用户登陆此页面。
可以通过访问upstream 变量来写入所选上游服务器的IP 地址$upstream_http_name
。
http {
upstream backend {
server server1.example.com;
server server2.example.com;
}
server {
location / {
proxy_set_header Host $upstream_http_name;
proxy_pass http://backend;
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果像我们的应用程序中一样,接收到可接受的 IP,则上述配置会将该信息传递到代理请求的 Host 标头中。
可以在此处找到上游模块提供的变量的完整列表
归档时间: |
|
查看次数: |
9399 次 |
最近记录: |