0
私のアプリケーションが動作しています。 console.logはログに記録され、cmdにprocess.env.URLを表示することができます。ただし、ブラウザでは、エラー502、悪いゲートウェイを返します。ノードエクスプローラでドッカーを作成すると返信502悪いゲートウェイ
これはこれはこれは
FROM nginx:latest
EXPOSE 80
COPY nginx.conf /etc/nginx/nginx.conf
nginxの/ Dockerfile
ある
FROM node:6.3
WORKDIR /var/www/app
RUN mkdir -p /var/www/app
COPY package.json /var/www/app
RUN npm install
COPY . /var/www/app
アプリ/ Dockerfile
あるevents {
worker_connections 1024;
}
http{
upstream app.dev{
least_conn;
server app:3000 weight=10 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name app.dev;
location/{
proxy_pass http://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;
}
}
}
nginx.conf私のドッキングウィンドウ-構成
version: "2"
volumes:
mongostorage:
services:
app:
build: ./app
ports:
- "3000"
links:
- mongo
- redis
command: node ./bin/www
nginx:
build: ./nginx
ports:
- "80:80"
links:
- app:app
mongo:
image: mongo:latest
environment:
- MONGO_DATA_DIR=/data/db
volumes:
- mongostorage:/data/db
ports:
- "27017:27017"
redis:
image: redis
volumes:
- ./data/redis/db:/data/db
ports:
- "6379:6379"
ですあなたは
proxy_pass http://app.dev/
代わりのproxy_pass http://app
、それが動作するはずすなわちサーバー名を使用する必要がありますproxy_pass_httpでは、あなたのnginx.confファイルで0
このエラーは、cmd:2017/11/04 11:16:01 [エラー] 5#5:* 1上流(クライアント)に接続中にconnect()が失敗しました(111:Connection refused):172.21.0.1、サーバー:app.dev、リクエスト: "GET /favicon.ico HTTP/1.1"、アップストリーム: "http://172.21.0.4:3000/favicon.ico"、ホスト: "app.dev"、referrer: "http: //app.dev/ " – davidlee
ローカルマシンからngnixの既存のイメージを削除して、作成システムを再開してください。それは正常に動作するはずです – pulankit
動作していないようです。上記と同じエラーメッセージが表示され、ブラウザ上の502 Bad Gatewayが表示される – davidlee