带有Express.js和Nginx的Docker Compose-502响应

时间:2019-03-30 21:15:53

标签: docker nginx

我正在尝试将express.js和nginx用作Docker的反向代理。 express应用程序本身可以很好地与docker配合使用,但是当我添加nginx时,我得到502响应。它打印此:

nginx_1 | 2019/03/30 21:14:04 [错误] 6#6:* 3连接到上游时,connect()失败(111:连接被拒绝),客户端:172.20.0.1,服务器:localhost,请求:“ GET / HTTP /1.1“,上游:” http://127.0.0.1:20000/“,主机:” localhost: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;
    }
  }
}

1 个答案:

答案 0 :(得分:0)

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

尝试将app作为上游的server参数-这应解析为组成网络中app容器的IP。

相关问题