本文图文讲解并记录一次迁移服务器后nginx报502和504导致二级域名无法访问的排解过程。
情况是这样的,一年左右前我在某云上搭了docker环境然后在容器中部署各种服务,最后用nginx来代理转发各个服务的请求,而且所有访问都配SSL证书并且已经全部能够正常访问的了,昨天晚上,不,上个月了打算对服务器进行迁移,然后就把旧的系统搞成镜像然后整个共享到另一个账号,重装完系统启动后发现二级域名老是报502 Bad Gateway或504 Gateway Time-out而无法访问。
日志也就是报下面这些:
[error] 7#7: *4 connect() failed (110: Connection timed out) while connecting to upstream, client: xx.xx.xx.xx, server: xxx.xubingtao.cn, request: "GET /xxxx/index.html HTTP/1.1", upstream: "http://172.18.0.x:90xxx/xxx/index.html", host: "xxx.xubingtao.cn"
网上找资料有说查看端口占用(netstat -tunlp | grep 端口)、资源使用情况(top、free)、磁盘空间(df -h)、加大nginx超时时长等等。

proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_connect_timeout 300;
调大nginx.conf的keepalive_timeout:

但都无济于事,无奈只好找服务器供应商帮忙,那个人却叫我放开进站端口,但我说这样不安全,而且我之前没放开也是可以正常访问的,为了证明给他看,我加了端口后用IP可以访问但域名还是不行:

最后他们也很无奈:

本以为把旧服务器打包成镜像到新服务器可以很快搞定,结果没想到竟然搞了两个月(11月30日、12月1日),最后还是凭自己的超强敏锐觉悟能力摸索到了解决办法,我就试着在Linux防火墙放开某个端口看能不能用域名访问,结果竟然可以,而且关掉后依然可以,而且其他域名也都可以了:

这真是神奇呀,后面我在工单上反馈可以了,有个工作人员打电话过来,我把情况跟他说一下,然后说他们的系统真神奇呀,他说应该不是系统的问题,系统他们也是直接安装而已,可能是docker容器的问题,好吧,是我玩的太高端了😂。
另外还要用docker inspect 查看运行容器的IP及端口跟你conf.d目录下配的IP及端口是否一致,还有Linux账号权限是否一致等等。
展开阅读全文
上一篇: 秦始皇兵马俑博物馆


扫码打开小程序可评论文章保存图片,在“我的”有实时在线客服哦,
关注我的公众号为您分享各类有用信息
分享录多端跨平台系统
粤公网安备 44011202001306号
Hello Dear, are you genuinely visiting this web site daily, if so then you will definitely get pleasant knowledge. Amata Tabb Zorana
Way cool! Some very valid points! I appreciate you penning this article and also the rest of the website is also very good. Arleta Bartholomeo Hubert