我用主机名运行了几个 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: 标头中传递上游服务器的名称而不是上游服务器组的名称?