我有一个作为负载平衡器的网站。 网站A.
我有其他网站,只能有一个域。 所以如果我只是redirect到他们说主机名称找不到。
所以如果我手动设置标题的东西,那么只有该网站显示。
我如何设置proxy_set_header Host xxxx到服务器地址select。 这样每个重新路由请求将有不同和适当的主机头。
如果我的其他2个网站可以基于url而不是主机标题,这将不会成为问题。
worker_processes 1; error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; error_log logs/error.log debug; pid logs/nginx.pid; events { worker_connections 1024; } http { upstream myapp1 { #server localhost:3333; server www.asd.com:80; } server { listen 80; location / { proxy_set_header Host $upstream_addr; // should become somehow www.asd.com right now this code doesn't work proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://myapp1; } } }
您需要将头文件设置为传入主机variables,如下所述:
proxy_set_header Host $host;
此问题的答案解释此行为并提供解决方法 。
实际上,在select上游之前,标题已经被固定。 如果您不能让所有上游回应一个主机:标题,您必须在设置标题的同时修复上游。