Docker Compose with Express.js and Nginx - 502 response



我正在尝试使用 express.js 和 nginx 作为 Docker 的反向代理。快速应用程序本身与 docker 配合使用效果很好,但是当我添加 nginx 时,我得到了 502 响应。它打印这个:

nginx_1 | 2019/03/30 21:14:

04 [错误] 6#6:*3 连接((失败(111:连接被拒绝(,连接到上游时,客户端:172.20.0.1,服务器:本地主机,请求:"GET/HTTP/1.1",上游:"http://127.0.0.1:20000/",主机:"本地主机:21000">

docker-compose.yml

version: '3.3'
services:
  app:
    image: node:latest
    volumes:
      - ./app:/usr/src/service/app
    working_dir: /usr/src/service/app
    command: ["node", "app"]
    ports:
      - 20000:18000
  nginx: 
    image: nginx:latest
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/error.log:/etc/nginx/error_log.log
      - ./nginx/cache/:/etc/nginx/cache
    ports:
      - 21000:80

nginx.conf

events {
}
http {
  upstream upstream_server {
    server localhost:20000;
  }
  server {
    listen 127.0.0.1;
    listen 80;
    server_name localhost;
    location / {
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://upstream_server;
      break;
    }
  }
}

你的nginx容器和应用程序容器位于同一网络上,但不在同一主机上 - 因此localhost不是你找到你的应用程序运行的地方。

尝试app上游的server参数 - 这应该解析为撰写网络中app容器的 IP。

最新更新