node.js – 如何使用nginx docker容器访问localhost上的服务器?

我正在尝试使用dockerized版本的Nginx作为我的节点(Expressjs)应用程序的代理服务器.没有任何配置到Nginx和发布容器的端口80,我能够看到认的Nginx登陆页面.所以我知道有很多工作要做.

现在我可以挂载包含proxy_pass localhost:3000配置的启用站点的目录.我的节点应用程序在本地运行(不在任何Docker容器中),我可以通过端口3000(即localhost:3000)访问它.但是,我假设在Nginx容器运行,映射到端口80,并代理我的localhost:3000,我将能够看到我非常简单的(hello world)应用程序.相反,我收到502.

我需要把东西传递给码头工人吗?这可能是Nginx配置错误吗?这是我的Nginx配置:

server {
  listen 0.0.0.0:80;
  server_name localhost;

  location / {
    proxy_pass http://localhost:3000;
  }
}

我尝试过使用this question,但似乎没有帮助.这是除非我做错了.

解决方法

您可以获得当前的IP地址,如图所示: here

ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}'

然后你可以在docker run中使用–add-host标志:

docker run --add-host localnode:$(ifconfig en0 | grep inet | grep -v inet6 | awk '{print \$2}') ...

在您的proxypass中使用localnode而不是localhost.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...