在docker中,我有一个面向客户端的服务器容器,一个api服务器容器和一个在端口8000
外部暴露的Nginx容器。运行api和客户端服务器容器后,我正在运行nginx容器,其中nginx.conf
已替换为以下内容:
events {
}
http {
server {
listen 80;
location /api {
proxy_pass http://server:9002;
}
location / {
proxy_pass http://client:9001;
}
}
}
我可以通过向client
或http://localhost:8000
发出请求来通过nginx验证http://localhost:8000/blah
服务器是否正常工作。但是,如果我转到URL http://localhost:8000/api
,它将重定向到http://localhost/api
并且无法连接。
我通过使用单独的暴露端口运行server
容器来验证它确实正在运行,并且它按要求返回了结果。我该如何解决?
答案 0 :(得分:0)
这可能是环境变量问题。我在docker-compose.yml上设置了PORT
env var,但是在Docekrfile中没有设置,添加它解决了这个问题。从docker-compose.yml中删除PORT
env var仍然可以。