繁体   English   中英

使用docker-compose的节点express返回502错误的网关

[英]node express with docker-compose returns 502 bad gateway

我的应用程序正在运行。 console.log记录在日志中,并且能够在cmd上显示process.env.URL。 但是,在浏览器上,它返回错误502,网关错误。

这是我的码头工人组成

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"

nginx.conf

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;
        }
    }
}

这是应用程序/ 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

这是nginx / Dockerfile

FROM nginx:latest

EXPOSE 80

COPY nginx.conf /etc/nginx/nginx.conf

在您的nginx.conf文件中,在proxy_pass_http中,您应该使用服务器名称,即

proxy_pass http://app.dev/而不是proxy_pass http://app ,它应该可以工作;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM