【发布时间】:2017-09-06 16:15:42
【问题描述】:
我有这样的架构: - 1 个 docker 组件在主机的 80 端口上运行 nginx - 具有 2 个服务的应用程序:一个节点和一个 mongodb
docker-compose 文件:
version: '2'
services:
backend:
build: ./back-end/
container_name: "app-back-end"
volumes:
- ./back-end/:/usr/src/dance-app-back
- /usr/src/app-back/node_modules
ports:
- "3000:3050"
links:
- mongodb
mongodb:
image: mongo:3.2.15
ports:
- "3100:27017"
volumes:
- ./data/mongodb:/data/db
nginx 配置文件
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location /back_1 {
#proxy_pass http://172.17.0.2:5050/;
proxy_pass http://0.0.0.0:5050/;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
nginx 容器似乎无法访问主机上的 3000 端口。 我做错了什么?
【问题讨论】:
-
您是否可以通过直接连接主机上的端口 3000 来访问您的应用程序服务器?您的 nginx 配置在端口 5050 上有一个代理传递,不应该是 3000 吗?没有将 nginx 集成到与您的应用程序相同的撰写文件中的任何具体原因?
-
我将 nginx 放在一个单独的 dockerfile 中,这样当我有一个新网站要服务时,我就可以更新 nginx conf 文件
标签: docker nginx docker-compose docker-networking