无法通过在Docker容器中使用Nginx的反向代理访问Node应用程序



我有2个独立的Docker容器:Node应用程序和Nginx在Windows机器上本地运行。两个容器都启动并运行,但我无法通过反向代理访问我在Nginx中设置的Node应用程序:

Node应用容器正在使用下面的命令运行:

docker run -p 2020:2020 --name nodeapp myimage:1.0

Node应用程序可访问localhost:2020url

对于Nginx容器,我使用

docker run -p 7070:80 --name nginx mynginx:1.0

Nginx可在localhost:7070访问

下面是我的nginx配置文件:

default.conf

upstream nodeserver {
server 127.0.0.1:2020;
}
server {  
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded_Proto $scheme;
proxy_pass http://nodeserver;
}
}

我做错了什么?

127.0.0.1从docker内部将解析到它自己的本地主机,而不是windows的本地主机。

server 127.0.0.1:2020;更新为server <Windows server IP>:2020;。应该可以。

根据前面的答案是肯定的,您应该使用Windows ip。Docker使用localhost ip与他的容器通信,但是在容器外部,你应该使用Windows ip,应该是:

192.168.99.100

最新更新