在接入 EdegOne 后,如果您的业务请求出现 4XX/5XX 状态码,您可以参照如下的常见原因和解决思路进行排查。
说明:
用户 IP、EdgeOne 节点 IP;
特定的 4XX、5XX 错误代码和消息;
发生 4XX、5XX 错误的时间和时区;
导致 HTTP 4XX、5XX 错误的 URL(例如https://www.example.com/images/icons/image1.png:)。
HTTP 400
1. 含义:服务器因某些被认为是客户端错误的原因(例如,请求语法错误、无效请求消息格式或者欺骗性请求路由),而无法或不会处理该请求。
2. 可能的原因及解决思路:
源站响应:直接访问源站测试,若源站响应 400,则修改源站配置或修改客户端请求行为以获取正确响应。
EdgeOne 节点响应:
请检查请求方法是否在 EdgeOne 支持的范围内,非以下请求方法,EdgeOne 节点将直接响应 400 状态码。
GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT、OPTIONS、PATCH、COPY、LOCK、MKCOL、MOVE、PROPFIND、PROPPATCH、UNLOCK。
协议格式错误,如使用 443 端口访问 HTTP。
HTTP 请求不符合 RFC 规范。
HTTP 403
1. 含义:服务器因某些被认为是客户端错误的原因(例如,请求语法错误、无效请求消息格式或者欺骗性请求路由),而无法或不会处理该请求。
2. 可能的原因及解决思路:
源站响应:直接访问源站测试,若源站响应 403,则修改源站配置或修改客户端请求行为以获取正确响应。
EdgeOne 节点响应:常见的原因是未通过防盗链校验。
请检查是否在规则引擎配置了 HTTP 应答,若有,看是否命中了如 Referer 黑白名单、IP 黑白名单、User-Agent 黑白名单等基础访问控制。 请检查是否在规则引擎配置了 Token 鉴权,若有,核对客户端请求的 URL 是否时间戳过期或 MD5 加密串计算错误。 请检查是否通过边缘函数配置了 远程鉴权,若有,核对客户端请求的 URL 是否不符合鉴权服务器的校验放行规则。 HTTP 416
1. 含义:服务器无法处理所请求的数据区间。最常见的情况是所请求的数据区间不在文件范围之内,
2. 可能的原因及解决思路:
源站响应:直接访问源站测试,若源站响应 416,则修改源站配置或修改客户端请求行为以获取正确响应。
EdgeOne 节点响应:
异常的 range 范围,如:rangeStart < 0、rangeStart > rangeEnd、rangeStart > FileSize。
客户端请求的 range 头部不标准。如请求 Range: Bytes=0-1023,而非 Range: bytes=0-1023。
HTTP 418
1. 含义:一般服务器使用这个响应来处理它们不想处理的请求。
2. 可能的原因及解决思路:
源站响应:直接访问源站测试,若源站响应 418,则修改源站配置或修改客户端请求行为以获取正确响应。
EdgeOne 节点响应:对于接入 EdgeOne 的域名,系统会自动为域名分配服务节点,且对应的节点均会下发该域名的配置文件,其中文件内容取决于域名的配置,如源站、缓存、头部等。当请求到 EdgeOne 节点时,节点会读取域名的配置文件,当发现配置文件不存在时,则响应 418 状态码。
例如:客户端请求已接入 EdgeOne 的域名http://example.com/test.jpg
,该域名的请求配置在节点 1.1.1.1
、1.1.1.2
上均有相关配置,则当域名请求到这两个节点时节点会读取域名 example.com
的配置文件,成功响应,如果请求到节点 2.2.2.2
上时,则会响应 418 状态码。请检查域名是否绑定了非 example.com
域名的服务节点,CNAME 配置是否正确,若检查无问题,请 联系我们 处理。 HTTP 423
1. 含义:表示 "Locked"(已锁定),在接入 EdgeOne 的场景下,一般表示触发请求回环。
2. 可能的原因及解决思路:
源站响应:直接访问源站测试,若源站响应 423,则修改源站配置或修改客户端请求行为以获取正确响应。
EdgeOne 节点响应:触发请求回环,即 CDN-Loop 头部的 Loops 数值 ≥ 16,详情请参见 CDN-Loop。一般常见于接入 EO 的加速域名,源站也设置为已接入 EO 或 CDN 加速的域名。 HTTP 520
1. 含义:EdgeOne 自定义的状态码。节点与源站 TCP 建连成功后,向源站发起 HTTP 请求,但源站直接发送 RST 包,则节点响应客户端 520 状态码。
2. 可能的原因及解决思路:
源站服务异常:直接访问源站测试并抓包,查看源站针对 HTTP 请求是否响应 RST 包,可能是源站防火墙或自身服务异常导致。
HTTP 521
1. 含义:EdgeOne 自定义的状态码。节点请求到源站,在 TCP 建连阶段,源站直接发送 RST 包,则节点响应客户端 521 状态码。
2. 可能的原因及解决思路:
源站服务异常:直接访问源站测试,可使用 curl 或 telnet 等命令工具,查看 TCP 连接是否能建连,通常是源站的某些端口未对公网开放或源站节点网络问题。
HTTP 522
1. 含义:EdgeOne 自定义的状态码。节点请求到源站,在 TCP 建连阶段,源站一直没有响应导致节点超时,则节点响应客户端 522 状态码。
2. 可能的原因及解决思路:
源站服务异常:直接访问源站测试,可使用 curl 或 telnet 等命令工具,查看 TCP 连接是否能建连,通常是源站的某些端口未对公网开放或源站节点网络问题。
HTTP 523
1. 含义:EdgeOne 自定义的状态码。若域名配置的源站为域名,则节点回源时,需要解析域名获取源站服务器 IP,若解析失败,则节点无法回源,响应客户端 523 状态码。
2. 可能的原因及解决思路:
尝试 dig 解析源站域名,确认是否能正常解析。
HTTP 524
1. 含义:EdgeOne 自定义的状态码。节点与源站建连成功后,向源站发起请求,源站一直没有响应导致节点超时,则节点响应客户端 524 状态码。
2. 可能的原因及解决思路:
源站服务异常:直接访问源站测试,查看针对 HTTP 请求是否有响应,若源站正常响应,可以尝试调整回源超时时间。如果仍然有问题,请联系我们处理。 HTTP 525
1. 含义:EdgeOne 自定义的状态码。若回源协议为 HTTPS,则节点回源时需要与源站进行 SSL 握手,若握手失败,则节点响应客户端 525 状态码。
2. 可能的原因及解决思路:
请检查是否域名回源协议配置为 HTTPS,但源站没有部署证书。若是,可在域名管理处将回源协议修改为 HTTP,或者在源站部署对应域名的证书。
节点和源站 SSL 握手时由于网络原因出现丢包。
回源证书合法性校验不通过,目前 EdgeOne 默认会校验证书有效期。
本页内容是否解决了您的问题?