内容分发网络CDN(Content Delivery Network)建立并覆盖在承载网上,是由不同区域的服务器组成的分布式网络,也是将源站资源缓存到全国各地的边缘服务器的网站加速产品。当您初次访问或缓存到期后,服务器会透传回到源站,其中源站的响应时间和首字节时间对回源请求的处理非常重要。如果您的网站在CDN回源时出现5xx报错的情况,请参考本文进行排查。
当您的网站在CDN回源时出现5xx报错时,可能分为以下两种场景,请根据实际情况进行排查。
如果访问网站出现5xx报错,可以通过cURL或者wget测试工具获取HTTP的响应头信息。可以参考以下命令,获取HTTP中的响应头信息。
说明:也可以进入指定浏览器,按
F12
键,然后单击Network,检测定位请求5xx报错的URL资源。
curl -vo [$File_Name] [$IP]
说明:
- [$File_Name]:在当前目录新建文件的文件名,访问网站的输出会存放于该文件中。
- [$IP]:访问网站的IP地址。
系统返回类似如下,X-Swift-Error
返回“orig response 5xx error”信息,这是因为CDN回源站响应超时,或者源站处理超时导致的。
在获取了访问网站的HTTP响应信息后,可以参考以下几个方面,进行问题排查。
可以使用Networkbench或者17CE检查网站在各地节点的网络性能。不同的监测结果,请参考以下内容进行处理:
time telnet [$Test_IP] [$Test_Port]
ping [$Test_IP]
说明:
- 第一条命令可以获取执行
telnet
命令时使用的时间。- 第二条命令可以测试网络的连通性。
- [$Test_IP]:待检测的IP地址,可以为源站IP地址或CDN节点IP地址。
- [$Test_Port]:待检测网站的端口号,可以为源站的端口号或CDN节点的端口号。
说明:若您刚接入CDN业务,对CDN业务没有缓存经验,则建议您可以登录CDN控制台,单击域名管理,然后单击域名右侧对应的管理>缓存配置>添加。对目录类型的资源配置一个最大的缓存范围。然后针对您不需要缓存的资源,单独配置一条策略,后续可通过优先级来控制匹配顺序。
如果您使用了CND+OSS的业务架构,可参考以下内容排查问题。
--probe-item
选项,检查OSS的下行带宽是否超过10GBps,QPS访问是否超过10000次/秒。如果OSS超过限制规则,则会触发OSS的流控,对超过限制的回源请求进入慢速处理。关于OSS的流控规则,请参见使用限制。
说明:
- 关于如何使用ossutil命令行工具的
--probe-item
选项,请参见查看选项。- 慢速处理不是直接返回不可用的状态,仅是对超过限制的请求处理进行降速处理。
说明:
- 检查两个节点间传输的流量可以使用iperf工具。
- 检查网络连接数可以使用Netstat工具。
说明:一般情况下,源站带宽如果容易被打满,或者容易发生丢包或延迟的情况,则建议将Nginx的nginx.conf配置文件中的send timeout
或者read timeout
参数调大一些。
在文档使用中是否遇到以下问题
更多建议
匿名提交