网络上看到一篇如何通过防火墙实现只通过CDN访问,大部分都是只允许 CDNip 访问,但是 CDNip 太多,不齐全,容易导致网站无法访问,随后在百度搜索找到解决方案。
注意:请确保你的CDN可以修改请求头信息,因为该操作通过CDN修改请求头信息之后,将请求信息传回源站服务器后进行判定
实现
由于本人经费不足,只能使用 Cloudflare 的CDN来实现该教程。
- 找到你CDN所在的转换规则(一般在页面规则内,详情请咨询自己CDN服务商),这里使用 Cloudflare 实现,添加HTTP请求头修改规则:
- 当传入请求匹配时,
主机名 = 你自己的域名
- 修改静态请求头(
User-Agent = XXXXXX(一个别人猜不到的值即可)
)
这里CDN的设置就完成了,直接保存即可。然后回到你服务器,这里使用宝塔面板作为例子。
- 打开宝塔面板,找到你对应设置域名的配置文件,在
root
后面添加以下代码
别人猜不到的值,就是你在CDN页面设置的那个值。
if ($http_user_agent != "XXXXXX(一个别人猜不到的值即可)"){
return 444;
}
到这里就全部设置完毕了,保险起见可以重启一遍服务器。
5 条评论
这种会不会影响搜索引擎只请求源站内容到账搜索不收录?
确实有影响到。
emmm没有请求头
康康