CDN(内容分发网络)在加速网站访问时,有时会遇到403错误,这种错误表示服务器理解了客户端的请求,但由于某种原因拒绝执行该请求,本文将详细介绍CDN 403错误的常见原因及其解决方法。
1、加速域名未添加到CDN
问题描述:用户在CDN上添加了主域名,但没有将二级域名添加到CDN,导致二级域名访问时返回403错误。
解决方案:确保所有需要加速的域名都已添加到CDN,并正确解析到对应的CNAME地址。
步骤 | 描述 |
1 | 登录CDN控制台。 |
2 | 添加需要加速的二级域名。 |
3 | 解析域名到对应的CNAME地址。 |
2、CDN鉴权问题
问题描述:CDN开启了鉴权功能,但请求URL中没有携带鉴权参数,或者鉴权参数过期、计算错误。
解决方案:根据鉴权文档排查并解决鉴权问题。
问题类型 | 描述 | 解决方案 |
无鉴权参数 | 请求URL中缺少鉴权参数 | 关闭CDN鉴权或添加正确的鉴权参数 |
鉴权过期 | 鉴权参数已过期 | 重新生成鉴权URL |
鉴权计算错误 | MD5值计算不正确 | 使用CDN控制台的地址生成器对比并修正MD5值 |
3、防盗链问题
问题描述:开启了防盗链功能,但请求头中的Referer不符合防盗链规则。
解决方案:检查并修改防盗链配置。
问题类型 | 描述 | 解决方案 |
Referer为空 | 请求头中没有Referer字段 | 允许空Referer或添加正确的Referer字段 |
Referer不在白名单内 | 请求头的Referer不在白名单内 | 将Referer添加到白名单或修改为白名单内的URL |
4、IP黑白名单问题
问题描述:在CDN控制台配置了IP黑白名单,实际访问的IP不符合配置规则。
解决方案:根据需要修改IP黑白名单配置。
问题类型 | 描述 | 解决方案 |
IP不在白名单内 | 访问者的IP未添加到白名单 | 将访问者的IP添加到白名单 |
IP在黑名单内 | 访问者的IP被添加到黑名单 | 将访问者的IP从黑名单中移除 |
5、UA黑白名单问题
问题描述:配置了UA黑白名单,客户端的User-Agent不符合规则。
解决方案:检查并修改UA黑白名单配置。
问题类型 | 描述 | 解决方案 |
UA在黑名单内 | 客户端的User-Agent被添加到黑名单 | 将客户端的User-Agent从黑名单中移除或修改UA |
UA不在白名单内 | 客户端的User-Agent未添加到白名单 | 将客户端的User-Agent添加到白名单 |
6、URL违规被屏蔽
问题描述:访问的URL涉及违法不良信息,被CDN屏蔽。
解决方案:确保CDN加速的内容合法,并申请解封。
问题类型 | 描述 | 解决方案 |
URL违规 | URL涉及违法不良信息 | 确保内容合法,提交工单申请解封 |
7、源站响应403
问题描述:源站响应了403给CDN,CDN再将403响应给客户端。
解决方案:检查并解决源站的403问题。
问题类型 | 描述 | 解决方案 |
源站403 | 源站本身返回403状态码 | 检查源站配置,确保源站没有返回403 |
回源Host配置错误 | CDN的回源Host配置错误 | 检查并修改回源Host配置 |
8、阿里云OSS相关问题
问题描述:源存储空间权限、OSS鉴权、防盗链等问题导致的403错误。
解决方案:根据具体问题类型进行相应处理。
问题类型 | 描述 | 解决方案 |
私有权限 | OSS Bucket权限设置为私有,但未提供签名参数 | 开启OSS私有Bucket回源授权或提供正确的签名参数 |
OSS防盗链 | OSS设置了防盗链策略,但请求不符合条件 | 检查并修改OSS防盗链设置 |
静态网站托管冲突 | 同时使用CDN私有Bucket回源和OSS静态网站托管功能 | 关闭OSS静态网站托管功能或私有Bucket回源授权 |
1、为什么配置了IP黑名单,还是可以正常访问?
答:这种情况通常是因为客户端的真实出口IP与IP黑名单里配置的IP不一致,建议获取客户端的真实出口IP,可以通过IP工具查询;也可以通过下载CDN的日志,从CDN的日志去查找这条请求,CDN的日志里记录了客户端IP。
2、发现反面请求的情况,把反面请求的客户端IP配置到黑名单了,为什么还是不断有请求CDN?
答:CDN作为一个服务端,无法控制客户端不请求CDN,CDN能做的是当反面请求到CDN的时候,CDN根据配置的安全规则拒绝不合法的请求,以403的形式拒绝访问。