【发布时间】:2021-05-28 17:34:52
【问题描述】:
我正在使用Nginx 学习负载平衡的基础知识,下面是包含 3 个容器(2 个应用程序和 1 个 nginx)的示例应用程序
app1 和 app2 可以分别在 127.0.0.1:5001 和 127.0.0.1:5002 访问,但是当我在 127.0.0.1:8081 调用 nginx 时,我收到错误 502 Bad Gateway
Nginx 容器日志
2021/02/25 10:36:33 [error] 8#8: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.19.0.1, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5001/", host: "0.0.0.0:8081", referrer: "http://0.0.0.0:9000/"
2021/02/25 10:36:33 [error] 8#8: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.19.0.1, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5002/", host: "0.0.0.0:8081", referrer: "http://0.0.0.0:9000/"
172.19.0.1 - - [25/Feb/2021:10:36:33 +0000] "GET / HTTP/1.1" 502 559 "http://0.0.0.0:9000/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
2021/02/25 10:36:33 [error] 8#8: *1 no live upstreams while connecting to upstream, client: 172.19.0.1, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://loadbalancer/favicon.ico", host: "0.0.0.0:8081", referrer: "http://0.0.0.0:8081/"
172.19.0.1 - - [25/Feb/2021:10:36:33 +0000] "GET /favicon.ico HTTP/1.1" 502 559 "http://0.0.0.0:8081/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
以下是相关文件
应用 1 和应用 2:Dockerfile
应用 1:app.y
应用 2:app.y
nginx.conf
http {
upstream loadbalancer {
server 127.0.0.1:5001 weight=6;
server 127.0.0.1:5002 weight=4;
}
server {
location / {
proxy_pass http://loadbalancer/;
}
}
}
events {
}
docker-compose.yml
version: '3.3'
services:
# Application 1
app1:
build: ./app1
image: "app1:latest"
container_name: app1
ports:
- "5001:5000"
networks:
- net1
# Application 2
app2:
build: ./app2
image: "app2:latest"
container_name: app2
ports:
- "5002:5000"
networks:
- net1
# Nginx
nginx:
build: ./nginx
image: "nginx:latest"
container_name: nginx
ports:
- "8081:80"
depends_on:
- app1
- app2
networks:
- net1
networks:
net1:
external: true
【问题讨论】:
标签: python docker nginx flask docker-compose