【问题标题】:node express with docker-compose returns 502 bad gateway使用 docker-compose 的 node express 返回 502 bad gateway
【发布时间】:2017-11-04 08:58:55
【问题描述】:

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

这是我的 docker-compose

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

【问题讨论】:

    标签: node.js nginx docker-compose dockerfile


    【解决方案1】:

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

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

    【讨论】:

    • 它在 cmd 上显示此错误:2017/11/04 11:16:01 [error] 5#5: *1 connect() failed (111: Connection refused) while connection to upstream, client :172.21.0.1,服务器:app.dev,请求:“GET /favicon.ico HTTP/1.1”,上游:“172.21.0.4:3000/favicon.ico”,主机:“app.dev”,引用者:“app.dev
    • 确保从本地机器中删除现有的 ngnix 映像并重新启动 compose 系统。它应该可以正常工作
    • 似乎不起作用。出现与上述相同的错误消息和浏览器上的 502 Bad Gateway
    • 它适用于我我已经用 docker-compose 版本 1.13.0 验证了它,
    • 它正在工作。谢谢。有什么想法让它运行具有不同端口的多个应用程序,使用相同的 docker-compose 文件和 nginx 配置?
    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 2021-02-24
    • 1970-01-01
    相关资源
    最近更新 更多