网站打不开的常见原因排查:从域名到代码逐层定位
网站打不开是用户感知最直接、反馈最激烈的运维故障。一条访问都打不开的消息几分钟内就能传遍工作群。处理这类问题的关键在于思路清晰,按照从外到内的顺序逐层排查,不跳步骤才能快速定位。
快速确认故障影响范围
接到告警后先确定三个事情:多少人无法访问、从什么地区访问、用的什么设备。用手机切4G网络测试一遍,用公司WiFi再测一遍,有条件就找不同省份的朋友帮忙验证。如果只有部分地区打不开,大概率是CDN回源或某条网络线路出了问题。如果所有人都打不开,问题出在服务器、域名或应用层面。同时登录监控平台查看各项指标是否有异常跳变,回顾最近半小时有没有做过配置变更或版本发布,很多宕机都和变更操作直接挂钩。
域名解析环节检查
在终端执行nslookup或dig命令,确认域名解析到的IP地址是否确实是服务器公网IP。检查TTL设置是否合理,淘宝等大型网站会发现TTL很短,这是因为他们需要频繁切换节点。域名如果快到续费期,登录域名注册商后台确认状态是否正常,很多网站宕机只是因为域名过期被暂停解析了。DNS解析记录也要核对,看看A记录或CNAME有没有被误修改。如果用了云解析服务,检查解析线路配置是否正确,比如只设置了电信线路但用户是联通宽带就会解析失败。
网络连通性与安全策略排查
从客户端使用ping命令测试到服务器的连通状态。不通时检查服务器安全组入站规则是否误封了来源IP,很多运维人员修改安全策略时忘记放行自己的IP范围。使用traceroute或mtr命令跟踪路由路径,看数据包传输到哪一跳就断了。还要确认服务器带宽有没有被突发流量跑满,带宽用尽时新TCP连接根本无法建立。如果是国内业务,注意备案状态是否正常,未备案域名会被运营商拦截。跨境业务则需要考虑国际线路抖动,必要时加一层CDN来绕过拥堵节点。
Web服务与应用状态检查
登录服务器用systemctl status命令检查Nginx、Apache或Tomcat等Web服务是否正常运行。使用curl -I命令在本机测试返回的HTTP状态码:五百段说明后端应用抛了异常,四零三或四零四是权限或路径配置问题,三零二说明有重定向循环。检查应用日志中的报错信息,PHP-FPM如果挂掉就重启PHP服务,数据库连接池如果耗尽就调整连接数上限。特别注意磁盘空间是否写满,session文件无法写入时表现就是登录跳转后还是登录页。按这个链条排查下来,绝大部分网站访问故障都能在半小时内定位到根因。