外观
3.3 源站段检查
约 693 字
链路验证
本页对应「三、操作步骤」的 3.3,完成绕过 CDN 的源站直连测试,确认源站服务、端口与 Host 处理正常,从而把故障范围收敛到 CDN 侧或源站侧。返回上级:链路检查。
前置条件
- 已拿到源站 IP
203.0.113.10、监听端口与站点根目录,例如/srv/axis。 - 3.2 的结果显示 CDN 回源失败,或需要判断源站是否独立可用。
- 测试终端到源站 IP 的网络可达,且源站安全策略允许测试出口访问。
- 已确认 3.2 的回源结果,知道 CDN 侧返回的具体状态码与错误信息。
- 源站账号可查看 Web 服务与访问日志,用于确认请求是否真的到达应用。
操作步骤
- 带正确 Host 头直连源站,验证应用层能否响应:
curl -sS -D - -o /dev/null \
-H "Host: example.com" \
"http://203.0.113.10/" | head -n 20- 分别测试 HTTP 与 HTTPS 端口,确认监听状态与协议:
for target in "http://203.0.113.10:80" "https://203.0.113.10:443"; do
echo "== $target"
curl -sS -o /dev/null -w "%{http_code} %{time_connect}\n" \
-H "Host: example.com" -k "$target"
done- 检查源站上的站点文件与 Web 服务状态,确认不是文件缺失导致的错误:
ls -l /srv/axis/index.html
crontab -l 2>/dev/null | head -n 5
curl -sS -o /dev/null -w "%{http_code}\n" http://127.0.0.1/ -H "Host: example.com"- 确认路径可达性与网络质量,排除中间链路丢包:
mtr -rwc 20 203.0.113.10结果确认
- 带
Host: example.com直连返回 200,页面内容与线上一致;返回 404 说明站点根目录或重写规则有误。 - 80 与 443 端口均能建立连接;
time_connect在正常范围,未被防火墙丢弃。 - 源站本机
curl 127.0.0.1返回 200,说明 Web 服务在跑;此时若外网直连失败,问题在网络或安全组。 mtr显示到源站丢包为 0,末跳延迟稳定,可排除线路质量问题。
注意事项
- 直连测试必须带
Host头,否则可能命中默认站点,得到与线上无关的结果。 -k仅用于连通性判断,不要据此认定证书正常;证书问题回到 3.2 检查。- 源站测试会产生真实访问记录,若源站有防刷或限流策略,控制请求频率。
- 直连测试只用 GET 与 HEAD,不要 POST 到真实接口,避免写入测试数据。
- 源站日志要与测试时间对得上,用
tail -f观察请求是否真的到达应用,而不是停在负载均衡或反向代理。 - 判断结论写清“源站正常、CDN 异常”或“源站本身异常”,两种结论对应的处理人和回滚动作不同。