nginx配置反向代理,使用的docker,用的文档的配置,第一个项目可以正常,第二个项目就访问504,但是域名+端口号访问就可以成功,下面是nginx报错日志
2022/10/19 10:40:04 [error] 417#417: *244987 upstream timed out (110: Operation timed out) while connecting to upstream
这里是nginx配置
upstream mqtt {
server 172.17.0.2:8585;
keepalive 10240;
}
server {
server_name mqtt.xxxxxxx.com;
listen 80;
access_log off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename){
proxy_pass http://mqtt;
}
}
}
第一个项目nginx配置
upstream webman {
server 172.18.0.7:6737;
keepalive 10240;
}
server {
server_name webman.xxxx.com;
listen 80;
access_log off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename){
proxy_pass http://webman;
}
}
}
在论坛里搜索相关问题,使用别人的配置也没有成功,百度也没找到解决方案。
原因是对docker一知半解的。nginx容器和之前的webman项目容器是用docker-compose创建的,所以在同一个网络,而新创建的webman容器是用dockerfile创建的,两个容器不同网络没法通信,用docker network connect连接到nginx所在的network里面就可以了
看日志是nginx 连接
172.17.0.2:8585
超时解决了,原来是nginx和php两个容器网络不互通,docker network connect连到nginx的网络就可以
怎么解决的啊, 教教啊 , 我搞三天了, 还没有搞定.