我有一台 nginx 服务器,充当 apache 服务器的负载均衡器。我正在使用子域,并且我的代码依赖 HTTP_HOST 值来执行正确的任务。
当我发出请求时:http://get.example.com
一旦它被转发,apache 上的 HTTP_HOST 就会变成example.com
。
我的问题是如何使它与原始请求保持一致?
这是我的 nginx 配置:
upstream example.com {
server 192.168.2.1:8909 weight=2;
server 192.168.2.2:8909 weight=1;
server 192.168.2.3:8909 weight=1;
}
server {
listen 80;
location / {
proxy_pass http://example.com;
}
}
我尝试添加多个proxy_pass
,每个子域一个,但似乎不起作用。
答案1
您需要传递 HTTPHost
标头。将其添加到相关内容中location
:
proxy_set_header Host $host;