检查访问状态与错误页,核心是判断问题出在“请求还没到服务器”还是“服务器已经响应但返回了错误”。前者要查域名解析、网络连通和本地环境,后者要查服务器配置、程序日志和资源路径。两种处理方案的代价差别很大:先查本地与网络通常几分钟就能排除大半问题,先改服务器配置则可能把原本正常的设置改坏。因此建议按“先外部、后内部,先只读、后修改”的顺序推进。
打开页面时看到的提示,大致能分成两类,处理方向完全不同。
判断依据很简单:如果浏览器连状态码都拿不到,就先别动服务器配置;如果能拿到状态码,就别再反复刷新本地网络。
这是代价最低的方案,不改任何配置,只观察结果。适合刚发现故障、还不确定问题范围时使用。
ping 检查域名能否解析到 IP。如果解析失败,问题在 DNS 或域名状态,与服务器程序无关。curl -I 请求目标地址,只看响应头。它能直接给出状态码,比浏览器更干净。例如返回 HTTP/1.1 404 Not Found,说明服务器正常响应,只是路径不对。curl -I https://... 对比,看是证书报错还是连接被拒。适用条件:故障刚出现、影响范围不清楚、你还没有服务器操作权限或不想冒险改动。判断结果:如果 curl 能拿到状态码,就转入方案二;如果连状态码都拿不到,优先查 DNS、防火墙和端口监听。
这个方案能定位根因,但代价更高:需要登录权限,改动配置有风险,而且容易在排查过程中引入新问题。适合已经确认请求到达服务器、但返回异常状态码的情况。
关键原则是:先看日志,再改配置。日志里已经写明的原因,不要靠猜。如果日志没有记录,再检查配置文件的语法,改完后先做语法测试再重载服务。
可以用下面几个条件快速决定先走哪条路。
短例子(假设场景):某页面返回 404,先用 curl -I 确认状态码为 404,说明服务器在正常响应。此时不必检查 DNS,直接登录服务器确认文件路径,发现是大小写不一致。这个例子说明:有状态码时,方案一比方案二更快锁定方向。
curl -I 拿到状态码,判断属于哪一类现象。curl -I 确认状态码变为正常。下一步:拿一个你正在维护的页面,先执行一次 curl -I,把状态码记下来。有了这个基线,下次出现异常时就能快速判断是网络层还是应用层的问题。