昨天帮一个客户排查网站问题的时候,碰到了网站105错误,他说之前从来没遇见过,一下子慌了神不知道该怎么办。其实这种错误虽说不常见,但碰到了只要顺着常见原因挨个捋,基本很快就能找到问题出在哪。我之前做运维这么多年,也碰到过五六次,踩过不少坑,今天就把整理出来的常见原因分享给大家,省得你们碰到了再到处瞎找答案,浪费时间。

网站105错误的核心常见原因
很多朋友碰到这个错误,第一反应就是去翻HTTP状态码对照表,翻来翻去发现标准HTTP里根本就没105这个状态码,越找越懵。其实啊,标准HTTP状态码里,1xx都是信息性状态码,最高也就到101(切换协议),所以105错误基本都是CDN或者反向代理服务商自定义的错误码,本质就是代理没法从源站拿到有效的正常响应,所以返回这个自定义错误。所以别盯着状态码表瞎耗时间了,直接从源站连接层面找问题就对了,我总结下来,常见原因也就那么几类,挨个查很快就能找到问题。
源站连接中断是首要原因
我碰到的网站105错误,差不多一半都是源站本身连不上导致的。比如说源站服务器宕机了,或者运营商那边断了网,代理去源站拉内容,连都连不上,自然拿不到响应,就返回105。还有一种更常见的情况,就是源站的防火墙、安全组把CDN或者代理的IP段给拦截了。很多朋友刚换CDN的时候,只顾着改DNS解析,忘了去服务器后台把CDN的IP段加到白名单里,结果CDN的请求过来直接被防火墙挡在门外,自然拿不到内容,全站都出105错误。我之前就碰过一个做个人博客的朋友,刚上CDN就全崩了,折腾了一晚上才发现是没加IP白名单,这种小错误真的很容易犯。
DNS解析异常引发的问题
DNS解析出问题,也是引发105错误的常客。比如你刚换了源站的IP,解析记录改了,但DNS还没全球生效,不同地方的LocalDNS缓存还没更新,部分地区的用户拿到的还是旧的IP地址,去请求旧IP当然拿不到内容,就会出105错误。这种情况很好判断,就是你用手机流量打开网站出105,换WiFi就能打开,或者不同城市的朋友打开有的正常有的错,那基本就是DNS缓存没更新的问题,只要等TTL时间过了,缓存更新了自然就好了。当然,你也要先检查下解析记录有没有写错,比如把IP地址最后一位写错了,这种低级错误我也见过不少,写错了IP当然解析到不对的服务器,肯定出问题。
源站配置错误导致空响应
就算源站能连上,配置错了也会出105错误。比如web服务器(Nginx、Apache这些)的站点配置写错了,你绑定的域名不对,或者网站根目录路径错了,源站根本找不到对应的站点,返回的就是空响应或者错误响应,代理拿到空响应,就会返回105错误。还有SSL证书配置错了也会出这个问题,比如你源站用HTTPS,结果证书过期了,或者证书没安装对,HTTPS握手直接失败,代理拿不到内容,自然返回错误。我之前碰到过一个用户,刚换了新的SSL证书,装完之后忘了重启Nginx,证书根本没加载上,所有访问都返回105,重启之后立刻就好了,这种小细节真的很容易被忽略。还有一种情况,就是源站开了防盗链,把代理的refer给拦截了,也会拿不到内容,不过这种情况相对少一点。
网络链路拥堵丢包的问题
最后还有一种情况,就是网络链路出问题了。比如说源站的骨干网拥堵,丢包率很高,CDN节点去请求源站的时候,数据包丢了大半,迟迟收不到完整响应,超时之后就会返回105错误。这种情况大多是临时性的,比如运营商线路维护,过几个小时自己就好了,如果一直不好,就要联系服务器运营商排查路由问题,看看是不是路由跳转出问题了,或者源站的带宽被打满了。如果你的源站是放在家庭宽带或者共享带宽上面,本身上行带宽就有限,一旦访问量稍微上来一点,带宽直接占满,请求就会超时,也很容易出这种105错误。这种情况要么升级带宽,要么就得换正规的服务器了。
其实碰到网站105错误真的不用慌,排查起来也有小技巧,你可以先绕过CDN直接用源站IP访问,如果直接访问都打不开,那肯定是源站本身的问题,从源站配置、连接、网络挨个查就好了。如果直接访问源站能打开,那就是CDN那边的配置或者DNS的问题,顺着查DNS解析和CDN配置就行。我碰到过好多次,都是很低级的错误,比如IP写错一个数字,或者忘了加白名单,折腾大半天,其实顺着思路捋,五分钟就能找到问题。希望今天整理的这些常见原因,能帮你碰到问题的时候少走点弯路,快速解决问题。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!