我有2个独立的Docker容器:Node应用程序和Nginx在Windows机器上本地运行。两个容器都启动并运行,但我无法通过反向代理访问我在Nginx中设置的Node应用程序:
Node应用容器正在使用下面的命令运行:
docker run -p 2020:2020 --name nodeapp myimage:1.0
Node应用程序可访问localhost:2020
url
对于Nginx容器,我使用
docker run -p 7070:80 --name nginx mynginx:1.0
Nginx可在localhost:7070
访问
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