【发布时间】:2016-04-26 03:25:43
【问题描述】:
我有一个带有 nodejs 的 docker 容器,我有一个带有 nginx 的 docker 容器。
我已经告诉我的角度使用 ec2-xxx:8888/api 来使用 api。 因为我运行了我的 nodejs 容器:
docker run -d -p 8888:8888 --name nodejs localhost:5000/test/node-js-image:1
所以我在我的亚马逊上映射了我的 docker 的 8888。所以这是有效的。 我的 app.config.js 包含:
URL: 'http://ec2...',
PORT: '8888',
我可以在ec2:8888/api 上看到我的 api
但是让服务器可以访问您的 api 并不能保存。所以我想像这样运行我的nodejs:
docker run -d --name nodejs localhost:5000/test/node-js-image:1
所以没有在我的亚马逊端口上映射容器端口。但是我仍然需要从我的 nginx 容器中访问 nodejs 容器。
我该怎么做? 我在我的 nginx.conf 中尝试过:
http {
upstream node-app {
least_conn;
server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
location / {
alias /usr/share/nginx/html/dist/;
index index.html;
}
location /api {
proxy_pass http://node-app;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}
但这不起作用。我只看到 HTML(没有 CSS),无法连接到 nodeJS 容器。
【问题讨论】:
标签: node.js nginx amazon-ec2 docker dockerfile