腾讯云 CDN – 只允许 CDN IP 回源访问源服务器

对于源站服务器有安全组,防火墙,安全狗等等防护措施的场景,接入 CDN 后需要在源站服务器做白名单配置,只允许回源到 CDN IP 地址,减少源 IP 暴露,阻止恶意请求直接绕过 CDN 访问源站,提高安全性。

咨询了腾讯云 CDN 工程师关于 CDN IP 回源给出的最优解就是判断加 Header,工程师不建议我添加 CDN IP 地址段到 NGINX 进行判断,因为 CDN IP 地址段分布全国且数量比较多,而且 IP 地址也会不定时更新,如果 CDN IP 更新之后没来得及添加,会导致回源失败。

在搜索相关文档时,发现已经有人实现了,CDN - 获取回源节点白名单 一文再次向腾讯 CDN 工程师进行了求证此文档是否正确,工程师答复正确之后转载过来并记录。

方法:

CDN 固定 Request Header

CDN 回源有个固定 Request Header ,就是 X-Tencent-Ua: Qcloud

可以在源站服务器做一个判断,回到源站的请求必须携带 X-Tencent-Ua: Qcloud 才能通行

在 NGINX 中可以加入下面的规则

if ($http_x_tencent_ua != "Qcloud") { return 403; }

自定义 Request Header

关于腾讯云 CDN 回源教程就到此结束,如果有更好的方法也可留言探讨...

2021.11.25 更新

致命 BUG:所有搜索引擎蜘蛛无法正常抓取网页,返回 403 错误,也就是所有的搜索引擎都不会爬取收录你的网站...

只能取消上述 nginx 规则以及图片中的回源HTTP请求头配置,除非你不想让它们抓取收录。

再次工单咨询腾讯云 CDN 工程师之后,经过他测试也无法在只允许腾讯云 CDN 回源源服务器的情况下搜索引擎蜘蛛正常抓取,他说会把这个需求提上日程,待功能上线之后通知...

 

最后编辑:2021年11月25日 21:31:46 『 本站部分内容具有时效性,如遇失效请留言反馈 』

转载声明:本站所有内容采用 CC BY-NC-SA 国际许可协议,转载请注明来源:Sep blog,谢谢!

版权声明:如文章内容涉及侵权,请联系 [email protected], 待查证属实之后会立刻删除侵权内容。

评论 (4)
  1. avatar
    沙发
    简单生活 23 天前

    看你CDN使用效果,进一步打消了我用的念头,评论框缓存的别人用户信息,我还得编辑修改…

  2. avatar
    板凳
    叶开楗 26 天前

    这个设置搞不懂 哈哈。
    我是在nginx 防火墙 开启cdn支持 不然有时候就是出问题。

  3. avatar
    地板
    龙笑天 2021-11-21 03:03

    额 我用的CDN IP较少 直接把IP加白了~