【问题标题】:Nginx proxy is not finding the backend servicesNginx 代理找不到后端服务
【发布时间】:2021-09-06 14:11:34
【问题描述】:

我安装了两个后端服务,应该由第三个 Nginx 服务代理。

我已经成功部署了 3 个服务,但由于某种原因,我无法让 nginx 看到其他 2 个服务出现错误:

GET / HTTP/1.1" 502 560

[error] 8#8: *1 no live upstreams while connection to upstream

我已尝试将所有服务更改为他们自己的网络,但似乎问题没有解决。

添加我的 docker-compose.yml

version: "3"
services:
    nginx_web_1:
        image: nginx:1.17
        volumes:
            - "./files_1:/usr/share/nginx/html:ro"

    nginx_web_2:
        image: nginx:1.17
        volumes:
            - "./files_2:/usr/share/nginx/html:ro"

    nginx_balancer:
        build: ./balancer
        ports:
            - 5000:80
        depends_on:
            - nginx_web_1
            - nginx_web_2

这就是我配置代理的方式:

文件移动到/etc/nginx/conf.d/default.conf

upstream backend_hosts {
    server nginx_web_1;
    server nginx_web_2;
}

server {
    listen 80;
    server_name localhost;
    location / {
      proxy_pass http://backend_hosts;
    }
}

【问题讨论】:

  • nginx_web_1 nginx_web_12 运行在哪些端口上?如果它们在同一台服务器上运行,它将与端口 80 重复
  • 它们在 80 上运行,但端口没有外部映射。这个想法是他们的 web_1 和 web_2 服务器只在默认的 docker 的桥接网络中公开他们的端口,nginx 也在那里。它们都应该映射到不同的 ip,因此不会发生端口冲突

标签: nginx docker-compose


【解决方案1】:

经过一番调查,问题是我只运行了 docker-compose up/down,它没有重建我的 Nginx 代理映像。

清理并运行 docker build 后,代理已正确配置,现在运行正常。

这意味着问题中列出的配置也是有效的

【讨论】:

    猜你喜欢
    • 2022-06-16
    • 2019-05-30
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多