小编pav*_*kin的帖子

反向代理时让 nginx 传递上游的主机名

我用主机名运行了几个 docker 容器:

web1.local web2.local web3.local

由 nginx 根据主机名路由到这些。我在此设置(在连接到互联网的不同机器上)前面有一个代理,我将上游定义为:

    upstream main {
      server web1.local:80;
      server web2.local:80;
      server web3.local:80;
    }
Run Code Online (Sandbox Code Playgroud)

和实际的虚拟主机描述:

    server {
      listen 80;
      server_name example.com;
      location / {
        proxy_pass http://main;
      }
    }
Run Code Online (Sandbox Code Playgroud)

现在,因为容器接收主机名“main”而不是“web1.local”,它们不能正确响应请求。

问题:如何在代理请求时告诉 nginx 在 Host: 标头中传递上游服务器的名称而不是上游服务器组的名称?

nginx reverse-proxy

122
推荐指数
4
解决办法
29万
查看次数

标签 统计

nginx ×1

reverse-proxy ×1