访问使用CDN的网站报HTTP 503错误的排查思路
问题描述
访问使用CDN的网站时报HTTP 503错误。本文通过模拟报错环境,分析现象和排查问题,并找出根源。
问题原因
•源站服务器上的Web服务程序异常。
•源站服务器超载,无法处理请求。
•源站服务器配置了单个IP访问的限制,当前已经超过了该限制,请求被拒绝。
解决方案
为了定位HTTP 503错误的问题根源,进行了场景模拟,模拟的场景为:一台运行着Nginx服务的ECS实例,将其作为CDN的源站,然后关闭Nginx服务,通过如下步骤对模拟的场景进行排查和分析。
1.在支持cURL命令的环境中,执行如下命令,分析返回结果。
curl -voa http://[$Your_Web_Address]
注:[$Your_Web_Address]:指模拟场景中的站点地址。
系统返回类似如下,“HTTP 503 服务不可用”的错误,X-Cache为“MISS_TCP_MISS”,同时X-Swift报“5xx error”的错误,表示未命中缓存,服务端有异常,与真实环境报错一致。
2.执行如下命令,使用源站ECS实例的公网IP及80端口作为代理,访问使用CDN的网站,分析返回结果。
curl -voa http://[$Your_Web_Address] -x [$ECS_IP]:80
注:[$ECS_IP]:指模拟场景中源站ECS实例的公网IP地址。
系统返回类似如下,连接被拒绝,有如下三种可能。
▫80端口没有被Web服务程序所占用,也就是说Web服务程序没有正常运行。
▫服务器超载,无法处理请求。
▫服务器配置了单个IP访问的限制,当前已经超过了该限制,请求被拒绝。
根据模拟结果,检查源站的Web服务程序是否出现异常,服务器是否超载以及是否配置了访问限制等安全防护。
适用于
•CDN
•云服务器 ECS
我有话说: