现在我正在研究docker。哪有Nginx作为备用代理进入我的应用程序(容器)。
首先,我将docker网络创建为网桥驱动程序
docker network create test-network
然后我运行我的应用程序服务器
docker run --name app -p 8080:8080 --network test-network -d application:v1.0.0
然后我运行Nginx服务器
docker run --name nginx-proxy -v ./default.conf:/etc/nginx/conf.d/default.conf -p 80:80 --network test-network -d nginx:latest
具有配置文件 default.conf
upstream app {
server app:8080;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://app;
proxy_redirect off;
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-Host $server_name;
}
}
那是配置,我习惯了Nginx容器。 问题是当我直接转到 http://server_url/ 时,无法将其重定向到我的应用程序容器中。然后我尝试检查容器和docker网络的IP
网络中每个容器的IP
172.28.0.3 -> app
172.28.0.2 -> nginx
nginx日志
6#6: connect() failed (111: Connection refused) while connecting to upstream, client: <client_ip>, server: localhost, request: "GET / HTTP/1.1", upstream: "http://172.28.0.3:8080/", host: "<server_url>"
- - "GET / HTTP/1.1" 502 559 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" "-"
所以现在我很困惑。网络或容器出了什么问题?甚至我的脚本有错误吗?