检查访问状态与错误页,核心是分别确认三件事:服务器是否返回了响应、返回的状态码是什么、页面内容是否与状态码一致。最直接的做法是用命令行工具或浏览器开发者工具查看HTTP状态码,再对照错误页内容判断问题出在网络层、服务器配置还是应用代码。下面用一个假设例子说明两种处理方案的差异。
假设你刚把一个静态站点部署到一台云服务器上,域名解析已生效。访问首页时出现两种情况:
这两种表现指向不同层面。方案A通常说明请求根本没有到达应用,可能是DNS、防火墙、端口监听或反向代理配置的问题;方案B说明请求已经到达服务器,服务器也返回了响应,只是返回的状态码是404,且错误页由服务器或中间层生成。判断依据是:有没有收到HTTP响应。收到响应就进入状态码和内容检查,没收到响应就先查网络与监听。
在本地终端执行:
curl -I http://你的域名或IP
如果返回类似 HTTP/1.1 200 OK,说明服务器正常响应。如果返回 404、403、500 或 502,则分别对应资源不存在、权限拒绝、应用内部错误、网关无法从上游取得有效响应。若命令长时间无输出或提示连接被拒绝,说明请求没有到达可响应的服务,应检查安全组、防火墙规则和进程监听状态。
需要区分“可能原因”和“已经定位的原因”。例如502的可能原因包括上游应用未启动、上游端口写错、上游超时;只有查看反向代理错误日志和上游进程状态后,才能确定是哪一项。
面对错误页,常见两种处理方向:
判断结果的标准是:状态码是否真实反映资源是否存在。如果资源存在却返回404,属于配置错误;如果资源不存在却返回200,属于软404,同样需要修正。
浏览器开发者工具的“网络”面板可以查看每个请求的状态码、响应头和耗时。它适合检查页面加载过程中哪些子资源返回了404或500,而不仅仅是主文档。在线HTTP状态检查工具可以快速获得一次外部请求的结果,但不同工具所在网络环境不同,结果可能受地域、缓存和重定向影响,只能作为参考,不能替代服务器端日志。
检查时建议按顺序记录:请求的完整URL、返回状态码、响应头中的 Server 与 Location、页面实际内容。把这几项放在一起,才能判断是重定向链、缓存还是应用路由导致的问题。
www 的域名是否返回相同状态码。下一步:选定一个具体URL,用 curl -I 记录状态码和响应头,再打开浏览器开发者工具核对同一URL的网络请求,把两次结果不一致的地方作为排查起点。