如何让 Nginx 转发原始主机名

Ibu*_*Ibu 3 nginx load-balancing apache-2.2

我有一个 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;
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试proxy_pass为每个子域添加多个,一个,但似乎不起作用。

Mic*_*ton 5

您需要传递 HTTPHost标头。将此添加到相关location

proxy_set_header Host $host;
Run Code Online (Sandbox Code Playgroud)