如何排查访问阿里云CDN加速资源返回状态码403的原因?
您可以通过以下方式排查访问CDN加速资源返回状态码403的具体原因:
1.通过Chrome浏览器打开CDN加速的一个具体URL链接,打开开发者工具。
2.排查是否开启鉴权,发现鉴权报错X-Tengine-Error:denied by req auth: no url arg auth_key。
这种情况下,您只需关闭鉴权。详细说明,请参见配置URL鉴权。
3.如果报如下错,请咨询是否开启了CC防护功能。
The website is under attack, You have requested too frequently
CC防护规则如下:
▫每分钟访问150次,URL非常集中,认为是攻击。
▫每分钟访问500次,不考虑URL,认为是攻击。
▫携带验证码Cookie,每分钟访问100次,认为是攻击。
这种情况下,您可以将自己的IP加入IP白名单。
4.如果源站是OSS源站,报错AccessDenied。您可以在昆仑上查看源站,找到源bucket。
▫对于源bucket设置了私有这种情况,您需要提供签名URL,但不能开启CDN的过滤参数。
▫对于源bucket不允许refer为空这种情况,您需要将bucket的防盗链配置设置成允许为空。
5.打开URL链接不是CDN域名,但应用了CDN的资源。排查是否是refer调用,如果Response头中有X-Tengine-Error:denied by Referer ACL,则说明refer规则设置不正确。
这种情况下,您可以先取消CDN的refer配置,然后排查CDN日志,找到对应的访问日志,找到refer头并添加白名单。
6.绑定源站,经测试仍返回403。http response头中,CDN的L1和L2缓存都不命中,说明是源站抛出的403。
这种情况下,您可以排查源站是否有问题。绑定host后,测试是否返回403。
我有话说: