以 portainer 为例
使用的是默认网络
会导致代理的时候不能写loaclhost/127.0.0.1 必须写容器内容IP(172.x.x.x)
location / {
proxy_pass http://172.18.0.1:9000/;
proxy_set_header Via "nginx";
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-Port $server_port;
}
使用 network_mode: "host"
在 nginx的compose中加入
network_mode: "host"
就可以规避上述问题
location /portainer/ {
proxy_pass http://localhost:9000/;
proxy_set_header Via "nginx";
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-Port $server_port;
}