【问题标题】:502 bad gateway with nginx and node inside docker502 错误的网关与 nginx 和 docker 内的节点
【发布时间】:2017-06-08 16:35:09
【问题描述】:

我正在尝试在各自的 docker 容器中运行节点和 nginx,并从 nginx 代理到节点。我一开始尝试了 without docker 下面的配置,它成功了。但是,当使用 docker 时,它不起作用,并在尝试连接到 http://localhost/ 时给出 Status Code:502 Bad Gateway

节点服务器

var http = require('http');
http.createServer(function (req, res) {
    res.setHeader('content-type', 'text/html');
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Request-Headers', '*');
    res.setHeader('Access-Control-Request-Method', '*');
    res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
    res.setHeader('Access-Control-Allow-Headers', '*');
    res.end('<html>Hey</html>');
}).listen(3001);

docker-compose.yml

version: '3'
services:
  app:
    build: ./servers
  nginx:
    build: ./nginx
    depends_on: 
      - app
    links:
      - app
    volumes:
      - ./nginx/conf:/etc/nginx/conf.d:ro
    ports: 
      - 80:80

nginx 配置

server {
        listen 80;
        listen [::]:80;

        location / {
                proxy_pass http://app;
        }
}

应用 dockerfile

FROM node:alpine
RUN mkdir /app/
COPY ./server.js /app
EXPOSE 3001
WORKDIR /app
CMD node server

nginx dockerfile

FROM nginx:alpine
RUN rm /etc/nginx/conf.d/*

【问题讨论】:

  • NGINX 配置中的app 指向哪里?
  • @robertklep 这是 docker-compose 中的应用服务
  • 我对 Docker 不是很熟悉,所以我可能会问一些愚蠢的问题;D 是否有映射到运行节点服务器的端口 3001(我看到它被暴露了,但我看不到 NGINX 被告知在哪里使用它)。
  • @robertklep 是的,你是对的,我修复了错误。 .你要回答这个问题吗?
  • 你解决了它,所以你可以回答它(就像你已经做过的那样:)

标签: node.js nginx docker docker-compose dockerfile


【解决方案1】:

这现在看起来像一个愚蠢的问题,但我有一个误解,即 docker 将容器链接到它打开的任何端口而没有指定端口。事实证明,我遵循的所有示例都在另一侧使用了端口 80。无论如何,我已经足够证明我自己了,我所要做的就是让 js 服务器监听 80 端口。

http.createServer(function (req, res) {
   ...
}).listen(80);

另外,我相信我可以在 nginx conf 中使用端口 3001

    location / {
            proxy_pass http://app:3001;
    }

【讨论】:

    猜你喜欢
    • 2016-07-02
    • 2017-02-03
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2014-01-25
    • 2017-07-07
    • 2018-07-02
    • 2016-09-21
    相关资源
    最近更新 更多