nginx 负载均衡器无法正确发送“proxy_host”值

nginx 负载均衡器无法正确发送“proxy_host”值

我想使用 nginx 负载均衡器。上游部分使用的域服务器使用共享 IP。假设负载均衡器服务器的域名为load-balancer.com

upstream test_upstream {
      server upstream1.com;
      server upstream2.com;
}

location / {

              proxy_redirect off;
              proxy_http_version 1.1;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection "upgrade";

              proxy_pass http://test_upstream/;
              proxy_set_header Host $proxy_host;
          }

由于域使用共享 IP,因此值Host等于upstream1.com或非常重要upstream2.com。但将值$proxy_host设置Host为等于上游名称。(在此示例中,它设置test_upstream为 Host)。上游服务器中收到的标头如下:

065.227.015.247.39136-085.083.104.010.00080: GET / HTTP/1.1
Connection: upgrade
Host: test_upstream
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 OPR/98.0.0.0
....

另外,使用$host$http_host代替$proxy_host也会将 的值load-balancer.com作为 Host 发送。此外,如果使用$upstream_http_host$upstream_http_server$upstream_http_addr,将发生 404 错误。如何正确设置 Host 值?

相关内容