当前位置: 首页 > 面试题库 >

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

许庆
2023-03-14
问题内容

我正在尝试将nginx的dockerized版本用作我的节点(ExpressJS)应用程序的代理服务器。没有对nginx进行任何配置并为容器发布端口80,我可以看到默认的nginx登陆页面。所以我知道很多工作。

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

我需要将某些东西传递给Docker吗?这可能是Nginx配置错误吗?这是我的nginx配置:

server {
  listen 0.0.0.0:80;
  server_name localhost;

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

我尝试使用此问题,但似乎没有帮助。除非我做的事情完全错误。


问题答案:

你可以得到你当前的IP地址,如图这里:

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

然后,您可以将--add-host标志用于docker run

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

在您proxypass使用localnode而不是localhost



 类似资料:
  • 我试过用这个问题,但似乎于事无补。除非我做了什么完全错误的事。

  • 问题内容: 我正在boot2docker 1.3.1下运行。 我有一个Docker容器通过运行Web服务器。 如果我连接到该容器,则可以使用浏览该网站,以便知道服务器正在运行。 我用以下容器运行容器: 它具有以下详细信息: 我以为可以访问,从托管人访问该网站。 这是行不通的。我只是在Chrome中看到“正在连接…”,却一无所获。 我究竟做错了什么? 问题答案: 好吧,愚蠢的我,我在boot2doc

  • 问题内容: 我运行基于节点映像的Docker容器(Windows的Docker快速入门终端) 我启动节点客户端(在端口3000上)和节点(基于Express)的服务器(在3009 端口上)。客户端通过AJAX调用访问REST服务器。 它可以完美地从主机运行(客户端访问localhost:3009并返回结果)。我可以拨打:3009,然后再次得到正确的结果。 但是当我构建并运行docker image

  • 问题内容: 这个问题始于我不理解为什么不能将变量传递给symfony2全局帮助器函数(服务)的原因,但是由于比我聪明的人,我意识到我的错误是关于试图从没有使用该类的类中使用security_context。没有注射吗… 这是最终结果,该代码有效。我发现没有更好的方法可以使此方法对社区有所帮助。 这是从symfony2的全局函数或帮助函数中从security_context获取用户和其他数据的方法。

  • http://localhost:8983/solr/kmartdev/select?&indent=on&deftype=dismax&q=amul&qf=name+model&wt=json

  • 运行以下命令时:cmd/c c:\sonar-runner-2.4\bin\sonar-runner.bat (sonar runner安装在生成计算机上)我得到以下错误: 错误:无法访问sonar服务器“http://localhost:9000” 错误:sonar runner执行期间出错 错误:java.net.ConnectException:连接被拒绝:连接 错误:原因:连接被拒绝:连接