用户进不来?DNS、LB、CDN三个入口谁在拦路

凌晨两点,用户反馈打不开网站。你登录服务器,服务正常,CPU内存都稳,日志没报错。ping了下域名,IP也对了。你纳闷:服务好好的,用户怎么就是进不来?
排查了半小时,发现是CDN回源配置错了。昨天改了个源站IP,CDN那边没同步。用户请求到了CDN节点,节点回源失败,返回502。
这是入口链路最尴尬的故障:每一层都觉得自己没问题,但串起来就是不通。
今天聊DNS、负载均衡(LB)、CDN这三个流量入口。用户进不来,大概率是其中某一层出了问题。怎么排查?怎么定位?
01 第一关:DNS
DNS是用户访问的第一跳。用户在浏览器输入域名,DNS解析成IP,然后才去访问。
常见问题一:解析失败
用户能ping通域名吗?用nslookup或dig查一下。解析不出来,可能是:
域名过期了
DNS服务商挂了
本地DNS缓存有问题(换公共DNS试试:8.8.8.8或114.114.114.114)
常见问题二:解析到了错误的IP
解析出来是127.0.0.1?是旧服务器的IP?是其他环境的IP?可能的原因:
A记录配错了
智能解析(按地域/运营商)规则配反了
DNS被劫持(较少见)
常见问题三:TTL太长,切流没生效
改了DNS记录,用户还是访问旧IP。查看TTL(缓存时长)。如果是600秒,改完10分钟后才逐步生效。改之前先调低TTL,切完再调回去。
排查命令:
nslookup yourdomain.comdig yourdomain.comdig @8.8.8.8 yourdomain.com(绕过本地缓存)
02 第二关:负载均衡
DNS解析到了IP,下一步到负载均衡。LB负责把请求转发到后端服务器。
常见问题一:监听器配置错误
端口配错了吗?监听的是80/443,用户来了能收到吗?
协议配错了吗?后端是HTTP,LB配了TCP?
证书过期了吗?HTTPS证书过期,浏览器报不安全
常见问题二:后端服务器不健康
LB健康检查没过,就把后端摘了。检查健康检查配置:
检查的是哪个端口?哪个路径?
超时和阈值设对了吗?太严格会误杀
后端服务真的健康吗?手动curl一下后端
常见问题三:安全组/防火墙拦了
LB和后端之间的安全组放行了吗?
LB的监听端口,客户端能访问吗?
排查方法:
查看LB监控:后端健康状态、请求数、错误数
直接访问后端IP,绕开LB测试
03 第三关:CDN
如果用了CDN,DNS解析出来的IP是CDN节点的,不是源站IP。用户先到CDN,CDN再回源。
常见问题一:回源配置错误
源站IP配错了吗?
源站端口、协议配对了吗?
源站安全组放行CDN的回源IP了吗?
用户访问CDN节点,节点回源失败,返回502/504。
常见问题二:缓存策略问题
某些资源没命中缓存,每次都回源,源站压力大
缓存时间太长,内容更新用户看不到
不想缓存的动态内容被缓存了(如API响应)
常见问题三:域名绑定问题
CDN加速域名和实际访问域名一致吗?
SSL证书覆盖这个域名吗?
排查方法:
curl -v 看响应头,确认是否命中CDN
查看CDN监控:回源率、命中率、错误码
绕过CDN,直接访问源站看是否正常
04 一张表对照排查
| 现象 | 可能问题 | 排查命令/方法 |
|---|---|---|
| 域名解析不出IP | DNS服务商、域名过期 | nslookup, dig |
| 解析出IP但ping不通 | 网络不通、安全组 | ping, telnet |
| 通但浏览器打不开 | 端口、协议、证书 | curl -v, 看返回码 |
| 偶尔通偶尔不通 | LB健康检查、后端不稳定 | 查看LB监控 |
| 静态资源慢 | CDN未命中、回源慢 | 看CDN命中率 |
| 更新后还是旧内容 | CDN缓存、浏览器缓存 | 刷新CDN,强制刷新浏览器 |
05 一个真实案例
某电商大促前,用户反馈部分地区打不开。技术排查发现:
DNS解析正常
LB健康状态正常
CDN命中率正常
最后抓包发现,CDN回源时走的IPv6,但源站只配了IPv4。部分用户DNS解析到了IPv6地址,CDN节点用IPv6回源,源站不通。最终回源失败,用户看到502。
修复方案:源站加IPv6地址,或CDN强制使用IPv4回源。
一个IPv6配置,让部分用户卡了一整天。
写在最后
用户进不来,别急着怀疑代码。先看DNS解析对了没有,再看LB转发正常吗,最后看CDN回源有没有问题。三层逐层排查,大多数入口故障都能找到原因。
那位电商的运维负责人后来总结:“以前用户说打不开,我们第一反应是服务器挂了。现在知道,入口三件套任何一个出问题,用户都进不来。”
排查入口故障,从这三层开始。