问题现象
请求CDN加速资源时,CDN节点响应403状态码,无法访问资源。
可能原因及解决方案
场景一:加速域名在CDN平台上未配置
若域名未在CDN加速平台进行配置,该域名请求访问到CDN节点时,CDN会直接响应403。具体报错如下:
解决方案:针对加速域名未在CDN平台配置的情况,可以将需要加速的域名在CDN平台上配置,配置完成后,进行对应的CNAME ,再重新请求对应的资源。
场景二:源站响应403问题
当用户端对该资源发起请求,CDN转发回源,源站如果响应403状态码给CDN,CDN会将403响应给用户端。具体报错如下:
解决方案:针对源站响应的403,需要源站排查对应原因,源站修改对应响应后,用户端再重新发起请求。
场景三:鉴权问题
域名在CDN平台配置了鉴权规则,如果请求的URL鉴权计算方式错误、鉴权过期、没有携带鉴权参数都可能导致响应403。具体报错如下:
解决方案:针对鉴权引起的403问题,如果是没有携带鉴权参数,请重新发起带有鉴权规则的URL请求,如果业务不需要鉴权功能,可以登录CDN控制台,关闭对应的鉴权功能,生效后再重新请求对应的资源;如果是鉴权过期和鉴权的计算方式错误,需要重新根据配置的鉴权规则生成新的URL,再请求重新生成的URL资源。
场景四:URL违规问题
当CDN对某资源下发封禁任务后,用户再访问该资源,CDN会响应403。以及当客户开启CDN内容审核增值服务,在平台发现违规资源时,CDN会自动下发封禁任务,此时如果客户对该域名配置启用了URL封禁的策略,此时也会响应403。这两类均归结为URL违规问题。当因为URL违规而进行封禁出现403时,Deny-Reason响应头可能会出现如下几种:deny by block_catchkey_ignore_url、deny by block_full_url、deny by block_ignore_url、deny by block_catchkey_plus_url。具体报错示例如下:
解决方案:针对URL违规引起的403,对违规的内容进行整改,确保整改后内容为合法。
场景五:防盗链问题
防盗链包含时间戳防盗链、Referer防盗链等,防盗链问题引起的403,通常表现为请求的方式不符合域名配置的防盗链规则,引起403错误。具体报错如下:
解决方案:针对防盗链引起的403问题,详情请见:防盗链异常导致访问资源返回403问题排查。
场景六:IP黑白名单问题
在CDN平台上配置了IP黑白名单,导致出现403。具体报错如下:
解决方案:如果IP在配置的黑名单里或者不在可访问的白名单内,可以在CDN控制台进行配置调整,配置生效后,再重新发起请求。
场景七:端口不匹配问题
域名配置的端口与访问请求到的端口不匹配时,会导致出现403。具体报错如下:
解决方案:如果是访问时指定了错误的端口,请调整为正确端口后,再发起请求。如果是域名配置的端口不准确,请在CDN控制台进行端口配置调整,配置生效后,再重新发起请求。