服务器上的 docker 反向代理,适用于位于不同容器中的多个网站

问题描述 投票:0回答:1

我在docker上有一个lemp服务器:

  • mysql 容器
  • php 容器
  • 反向代理容器
  • 然后对于每个网站都有一个 nginx 容器,其中有自己的网站文件

因此每个网站容器都有自己的 .conf 文件,并且从反向代理容器我可以卷曲 http://container1 并且我有网站,对于 website2 也是如此。但是,如果我从服务器操作系统或浏览器上执行此操作,我会得到服务器没有给出响应的响应。

这是我的反向代理.conf:

server {
    listen 80;
    server_name container1.com;
    location / {
        proxy_pass http://container1.com;
        proxy_buffering off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name container2.com;
    location / {
        proxy_pass http://container2.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }
} 

container1.com 是网站容器的名称。 我认为这应该有效,但是我得到了这个 卷曲http://website1.com 错误代码:521

提前致谢!

我尝试只拥有一个网站,但我得到了相同的答案,在 website1.com 内curl http://localhost 和 http://website1.com 返回页面,也在反向代理内。所以这意味着反向代理容器和网站容器之间的通信正在工作,但随后从网络或服务器操作系统出现此错误 521,这意味着没有服务器响应

docker nginx docker-compose containers nginx-reverse-proxy
1个回答
0
投票

在这两种情况下,您的反向代理配置似乎在 proxy_pass 指令行都有拼写错误。您使用服务器名称“container1.com”,而不是容器名称“container1”。

© www.soinside.com 2019 - 2024. All rights reserved.