Tôi đã sau docker-compose.yml
:nginx Reverse Proxy thất bại với Liên Kết Docker Container
node1:
build: ./node
links:
- redis
ports:
- "8080"
node2:
build: ./node
links:
- redis
ports:
- "8080"
service1:
build: ./service
links:
- redis
ports:
- "8383"
redis:
image: redis
ports:
- "6379"
nginx:
build: ./nginx
links:
- node1:node1
- node2:node2
- service1:service1
ports:
- "80:80"
Sau khi thực hiện điều này và chạy docker ps
tôi nhận được như sau:
080d9d7dc2e0 dockerworkflow_nginx:latest "nginx -g 'daemon of 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp, 443/tcp dockerworkflow_nginx_1
8c25bfdb9d00 dockerworkflow_node1:latest "nodemon /src/index. 6 minutes ago Up 6 minutes 0.0.0.0:33023->8080/tcp dockerworkflow_node1_1
4ae817be2a63 dockerworkflow_service1:latest "nodemon /src/index. 6 minutes ago Up 6 minutes 0.0.0.0:33022->8383/tcp dockerworkflow_service1_1
91ff238fe3f6 dockerworkflow_node2:latest "nodemon /src/index. 6 minutes ago Up 6 minutes 0.0.0.0:33021->8080/tcp dockerworkflow_node2_1
fe0c7e02c860 redis:latest "/entrypoint.sh redi 6 minutes ago Up 6 minutes 0.0.0.0:33020->6379/tcp dockerworkflow_redis_1
Tất cả mọi thứ có vẻ là tốt cho đến nay.
Các nginx.conf
Tôi đang sử dụng trông giống như sau:
worker_processes 4;
events { worker_connections 1024; }
http {
server {
listen 80;
location/{
proxy_pass http://node1;
}
location /a/ {
proxy_pass http://node2;
}
location /b/ {
proxy_pass http://service1;
}
}
}
Tất cả điều này thực sự nên làm như sau:
Nếu tôi nhập http://{host-ip}/
thì node1
container được chuyển tiếp yêu cầu.
Nếu tôi nhập http://{host-ip}/a/
thì vùng chứa node2
sẽ được chuyển tiếp yêu cầu.
Nếu tôi nhập http://{host-ip}/b/
thì vùng chứa service1
sẽ được chuyển tiếp yêu cầu.
Hiện tại, tôi đang nhận được 502 Bad Gateway
nếu tôi thử bất cứ điều gì.
Ngoài sự tò mò, khối {} phía trên có làm gì để giải quyết vấn đề của bạn không? Hoặc là nó chỉ có một dấu/cố định nó? – csgeek
không có niềm vui cho tôi. có gì trong tệp proxy_params của bạn? – Adam