访问CDN加速的网站报HTTP 503错误的排查思路

更新时间:

问题描述

访问使用阿里云CDN加速的网站时报HTTP 503错误。本文通过模拟报错环境,分析现象和排查问题,并找出根源。

问题原因

访问CDN加速的网站发生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访问的限制,当前已经超过了该限制,请求被拒绝。
  3. 根据模拟结果,检查源站的Web服务程序是否出现异常,服务器是否超载以及是否配置了访问限制等安全防护。

适用于

  • CDN
  • 云服务器 ECS