失敗,我有以下docker-compose.yml
:NGINX反向代理與鏈接Docker容器
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"
執行該運行docker ps
我得到以下後:
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
一切都顯得好爲止。
的nginx.conf
我使用如下所示:
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;
}
}
}
這一切真的應該做的是以下幾點:
如果我進入http://{host-ip}/
那麼node1
容器轉發請求。
如果我輸入http://{host-ip}/a/
那麼node2
容器被轉發請求。
如果我輸入http://{host-ip}/b/
那麼service1
容器被轉發請求。
現在,我得到502 Bad Gateway
,如果我嘗試任何東西。
出於好奇,上游{}塊是否做了任何事情來解決您的問題?還是隻是有一個尾隨/修復它? – csgeek
對我來說沒有喜樂。你的proxy_params文件中有什麼? – Adam