启用 CDN 后,通过搜索引擎访问的返回 403 状态码

释放双眼,带上耳机,听听看~!

今天站点出现了在站点用户激活的时候返回HTTP 状态码 403,You don’t have permission to access the URL on this server的问题。意思就是被限制了,不允许您访问。

返回的结果

一开始以为只是个别出现的情况,然后没处理,后来我自己通过搜索引擎,百度、谷歌、百度统计、微博等来源访问,统统403错误代码。发现这应该是哪里个配置出现的问题。

猜测问题原因

查看了下访问日志,并没有在日志中发现有403的错误代码。我是开启了几个CDN线路,一开始以为是分配线路导致的问题,最后只保留了一个线路,发现问题依旧,最后切换线路,再到最后直接解析源IP,发现好了。

通过简单的分析,应该很清楚问题了,问题原因就出现在CDN上,被CDN拦截了。

问题原因

找到了阿里云CDN的配置,发现之前设置了Refer防盗链白名单通过配置访问的 referer 黑白名单来对访问者身份进行识别和过滤,从而限制资源被访问的情况)。

假如通过百度搜索引擎访问的,HTTP head头中的Refer是baidu.com,而baidu.com并不在Refer防盗链白名单中,所以会统统拒绝掉,所以会出现访问被拒绝。

解决方法

1、在Refer防盗链白名单添加搜索引擎,例如*.baidu.com

2、直接禁用Refer防盗链白名单。

我是采取了后者,因为你不知道有多少个来源来访问您的站点。如果不想指定某个来源来访问的,可开启黑名单禁止即可。

自己给自己挖的坑,小小跳了一下。

人已赞赏
运维笔记

网站 Robots 协议详细介绍以及文件写法、用法

2017-9-16 15:13:38

技术笔记运维笔记

RabbitMQ 启动失败,提示Authentication failed (rejected by the remote node)

2018-1-12 12:07:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索