网站突然打不开别急着重启服务器:从 DNS 到 Nginx 一步步排查
网站突然打不开,很多人第一反应是重启服务器。重启有时能蒙对,但更多时候只是把问题暂时盖住,过一阵又会复发。打不开的原因其实分好几层:域名解析、网络连通、Web 服务本身、上游应用,每层都有对应的检查方法,按顺序排查,几分钟就能定位到哪一环断了。
第一步:先确认域名解析对不对
浏览器报错不一定是服务器的问题,先看域名有没有解析到正确的 IP:
dig +short example.com
nslookup example.com
如果解析结果是错的 IP,或者干脆解析不出来,问题在 DNS 侧:检查域名解析记录有没有被改错、TTL 是不是还没生效、本地是不是走了错误的 DNS。解析正确,再往下查。
第二步:确认端口通不通、服务在不在
解析没问题,就看服务器的 80 和 443 端口能不能连上:
curl -I https://example.com
ss -tlnp | grep -E '80|443'
curl 超时、连接被拒绝,说明请求根本没到 Web 服务:可能是服务没起来,也可能是安全组或防火墙没放行端口。ss 能看到监听,说明 Nginx 在跑;看不到监听,先检查服务状态,再看配置文件有没有改错。
第三步:看 Nginx 配置和错误日志
服务在跑但返回 502、504 或者空白页,重点看两处:先验证配置语法,再翻错误日志:
nginx -t
tail -n 100 /var/log/nginx/error.log
nginx -t 能立刻发现配置文件写错、证书路径不对、upstream 名字拼错这类问题。error.log 里则会写清上游连不上、超时、权限不足等具体原因。502 多半是后端应用挂了或者 upstream 地址配错,504 多半是后端响应太慢、超时时间设得太短,对着日志改,比逐项猜快得多。
第四步:区分是 Nginx 的问题还是后端的问题
如果 Nginx 本身能返回页面,只是某个接口报错,那就把后端单独拎出来测:直接 curl 后端监听的地址和端口,看它有没有响应。后端没响应,查应用日志和进程状态;后端有响应但 Nginx 报错,再回头核对 proxy_pass、超时时间和请求头转发有没有配错。分清责任方,才能避免在没问题的那层反复折腾。
最后提醒一句:排查时顺手把每一步的结果记下来——解析结果、端口状态、日志里的关键报错行。修好之后,这些记录就是下次同样故障的排查清单。网站打不开不可怕,可怕的是不分层、不看日志就直接重启:先定位、再动手,问题才能真正解决。
- 点赞
- 收藏
- 关注作者
评论(0)