【发布时间】:2025-12-22 22:55:11
【问题描述】:
我正在尝试使用 nginx 的 docker 化版本作为我的节点 (ExpressJS) 应用程序的代理服务器。无需对 nginx 进行任何配置并为容器发布端口 80,我就能看到默认的 nginx 登录页面。所以我知道这很有效。
现在我可以挂载包含proxy_pass localhost:3000 配置的启用站点的目录。我的节点应用程序在本地运行(不在任何 Docker 容器中),我可以通过端口 3000(即localhost:3000)访问它。但是,我假设在运行 nginx 容器、映射到端口 80 并代理我的 localhost:3000 的情况下,我将能够看到我的 very 简单(hello world)应用程序。相反,我收到了 502。
我需要向 docker 传递一些东西吗?这可能是 nginx 配置错误吗?这是我的 nginx 配置:
server {
listen 0.0.0.0:80;
server_name localhost;
location / {
proxy_pass http://localhost:3000;
}
}
我尝试过使用this question,但似乎没有帮助。除非我做错了什么。
【问题讨论】:
-
我也试过了,但似乎无法让它工作。我知道这个类似的问题已经被问过很多次,甚至我得到的 502 错误也是如此,但这些都没有奏效。我下班回家后会重新检查。
-
DNS ftw,imo。主机有一个名字;)
-
docker on linux, version >=
20.04可以使用带有运行标志的host.docker.internal;见*.com/a/61424570/2014893