curl -I http://example.com curl -I https://www.example.com nginx -T | grep -A8 'server_name example.com'
监控平台每五分钟推一条 502,同事在浏览器里打开首页却是 200,连刷几次都正常,那条告警挂着几个小时也不恢复。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,探针配的地址是不带 www 的裸域,那个 server 块里 fastcgi_pass 还指向迁移前的老 PHP socket,真实用户走的都是带 www 的站点,所以只有探针那一头一直在报错。
「站点探针误报」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
处理上按这个顺序:先拿探针同样的 URL 和 UA 手工请求一次,看是不是复现;用 nginx -T 把两个 server 段的后端转发配置逐行比对找出差异;把裸域整段 301 跳到带 www 的主站,不要再单独维护一份后端。
改完只确认一件事:探针那条 502 不再出现,裸域访问会直接 301 跳到带 www 的主站首页面上。
