我正在尝试使用一个经过Docker化的Nginx版本作为我的Node(ExpressJS)应用程序的代理服务器。在没有对Nginx进行任何配置并且为容器发布80端口的情况下,我能够看到默认的Nginx着陆页面。所以我知道这部分是起作用的。
现在我可以挂载包含proxy_pass localhost:3000
配置的sites-enabled目录。我有一个本地运行的Node应用程序(不在任何Docker容器中),我可以通过端口3000访问它(即localhost:3000
)。然而,我会认为在运行着映射到端口80的Nginx容器,并代理我的localhost:3000的情况下,我将能够看到我的非常简单(hello world)的应用程序。但是我收到了502错误。
我需要在Docker中传递一些内容吗?这可能是Nginx配置错误吗?这是我的Nginx配置:
server {
listen 0.0.0.0:80;
server_name localhost;
location / {
proxy_pass http://localhost:3000;
}
}
我试过使用这个问题,但似乎没有帮助。除非我做错了什么。
host.docker.internal
;请参见https://dev59.com/YV0Z5IYBdhLWcg3wiw4w#61424570。 - Robert K. Bell