1. 精华:先确认健康检查与边缘策略,再看是否为端口或协议配置导致的丢失。
2. 精华:使用tcpdump、curl、CDN日志与云厂商控制台抓取证据,快速定位是防火墙/安全组、负载均衡还是重定向问题。
3. 精华:优先恢复对外的80端口(短期),并同时推进用HTTPS(443)+自动证书更新方案作长期修复和防回归。
作为有多年线上运维与CDN调优经验的工程师,我把一次典型事故的实战步骤写成可复制的流程。问题表现通常是:边缘统计显示请求骤降,用户报告HTTP访问失败,但HTTPS正常或不稳定。这很可能是CDN边缘对源站80端口的健康检查失败或客户把80关掉却未同步调整CDN配置。
第一步:快速确认范围。用curl和CDN边缘节点探测:curl -I -v http://your.domain.com 和 curl -I -v https://your.domain.com;再在机房或云内做 telnet your.origin 80、nmap -p80 your.origin。若外网可到443不可到80,初步指向端口被阻断或服务未监听。
第二步:抓包与日志取证。核心命令示例:sudo tcpdump -i any 'tcp port 80' -w /tmp/port80.pcap;查看nginx/Apache access/error log;并登录CDN控制台下载边缘错误日志与健康检查结果。若看到大量SYN重传或RST,说明防火墙或ACL阻断;若看到HTTP 4xx/5xx,则检查源站响应。
第三步:检查本地监听与防火墙规则。运行 ss -ltnp | grep :80 和 sudo iptables -S(或 nft list ruleset)确认80是否被DROP或REJECT。云环境还需核对安全组/ACL。若发现80被策略禁止,评估改动影响并短期放行以恢复服务。
第四步:检查负载均衡与NAT。许多架构中,外部请求通过LVS/HAProxy/云SLB转发到后端端口,可能存在端口映射错误或健康检查使用了错端口。确认负载均衡的健康检查路径与端口与实际应用一致,若不一致修正并让健康检查通过。
第五步:证书与重定向策略审查。部分团队直接关闭80后依赖HSTS或301强制重定向导致边缘在首次验证期出现问题。注意ACME(Let's Encrypt)需要80或TLS-ALPN验证,切勿在未替代的情况下直接关闭80。若使用ACME,改为DNS挑战或保留临时80。
第六步:快速修复路径(短期+长期)。短期:在确认安全可控下,临时放开80端口并修复健康检查URL,让CDN边缘恢复流量。长期:迁移健康检查到HTTPS(443)或使用证书验证的健康检查,启用自动证书管理、严格的重定向策略与回滚Runbook。
第七步:验证。恢复后必须逐步验证:CDN边缘日志回填流量、用户侧可访问性、以及合规的证书链。使用多个节点/地域做合成监控,确保不存在地域性丢失。
第八步:根因分析与防回归。把变更记录、命令输出、抓包文件一同归档,写出事故报告并给出明确的SOP:任何关闭80的变更必须通过影响评估,且在CDN/证书策略改造完成前禁止操作。
常用命令回顾(可直接复制):
curl -I -v http://your.domain.com
sudo tcpdump -i any 'tcp port 80'
ss -ltnp | grep :80 和 sudo iptables -S
traceroute/curl --resolve 用于确认CDN到源站网络路径。
风险与注意事项:临时放行80虽能快速恢复流量,但要严格限定时间窗口与审批;不要把证书续期只依赖单一验证方式;在高合规环境下,对外放端口需走变更流程并做好日志审计。
结论:这类事故95%是配置/检查链条断裂而非神秘流量消失。用证据驱动排查(日志、抓包、控制台数据),短期恢复与长期改造并行,落地Runbook和自动化检测,才能把同类问题彻底拦在门外。
如果你需要,我可以把这套流程整理成一页可执行的运维Playbook并附上可复用的脚本与报警规则。
