在尝试使用docker-compose时,我遇到了NGINX和dns的一些问题。错误是NGINX中常规的“连接到上游时拒绝连接”。我认为问题是由端口号引起的。
像this one这样的在线示例在端口80上运行NGINX,这不会导致问题。
docker-compose.yml:
version: '3'
services:
http-server:
networks:
- mynetwork
image: nginx_image
ports:
- 8080:8080
depends_on:
- frontend
- rest_api
frontend:
networks:
- mynetwork
image: frontend_image
ports:
- 8001:8001
rest_api:
networks:
- mynetwork
image: rest_api_image
ports:
- 8000:8000
网络: 我的网络: 司机:桥梁
nginx.i for nginx_image有这个块:
server {
listen 8080;
location /static/js/ {
proxy_pass http://frontend;
}
location /static/css/ {
proxy_pass http://frontend;
}
location /static/ {
proxy_pass http://rest_api;
}
location / {
proxy_pass http://frontend;
}
location /rest_api/ {
proxy_pass http://rest_api;
}
}
现在,前端和api都通过端口80调用,而它应该是8001和8000.
我错过了什么?我希望docker-compose自动进行端口映射。
提前致谢!
亲切的问候,
DA
EDIT1 :这是错误(包括主机名建议)
EDIT2 :更新了问题
http-server_1 | 2018/06/04 14:47:50 [error] 14#14: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.18.0.1, server: , request: "GET /rest_api/admin/ HTTP/1.1", upstream: "http://172.18.0.2:80/rest_api/admin/", host: "localhost:8080"
答案 0 :(得分:1)
你必须指定主机名:
frontend:
image: frontend_image
hostname: frontend
ports:
- 8001:8001
rest_api:
hostname: rest_api