YOLO813

CDN防护及缓存 - Cloudflare初了解

    边缘缓存是 Cloudflare CDN 的一项基本功能。 因此,其边缘网络会自动缓存世界各地的大量内容。 当访问者请求缓存资源时,它会从离他们最近的数据中心提供服务,因此内容加载速度更快,缓存的作用降低了服务器的负载,而CF优秀的防护功能也可以帮助防护绝大部分黑客的攻击,一般来说,很难透过CF找到网站解析的真实IP。

创建账户:

https://dash.cloudflare.com/sign-up

添加域名

CF会自动搜寻DNS记录,点击继续即可(其实就是把原本DNSpod的解析记录搬移到这里面,后面也可以更改)

在这里,需要将名称服务器(NS)指向CF,我的域名是在腾讯云购买的,默认添加了以下两个解析

按照文档介绍修改。

但是蛋疼的是,DNSPOD默认不允许你修改这两条记录。研究了下,需要在我的域名栏目下,找到解析旁边的管理

找到DNS服务器进行修改

    这个修改可能需要最长24个小时才能生效,此时网站仍然是可以正常访问的。

    收到CF的生效邮件提醒。

    配置缓存规则如下:

    但是此时访问域名,仍然访问了原服务器IP,打开DNS选项,添加之前的记录

    不出意料,网站崩了,继续找原因

    最后查到是因为我的SSL未设置,由于网站本身就已存在ssl证书,因此需要将在 CloudFlare 的 SSL/TLS 菜单里将「SSL/TLS 加密模式」设置为完全

    

    当前我的DNS解析记录如下:

    

    这时再去访问网站,查看网络请求,可以看到CF已经生效了

        同时,可以看到nginx的日志里面,出现一条日志,前面的IP地址为CF的IP地址,后面的这个221开头的才是用户真实的IP,当然,这个字段的展示依赖于nginx配置文件中的log_format配置了$http_x_forwarded_for

    现在访问www.domain.com和domain.com域名其实是一样的内容,干脆修改了下nginx配置规则,将所有的domain.com跳转至域名www.domain.com,在server段加入如下代码

if ($host != 'www.domain.com'){
   rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
}


    现在可以添加防火墙规则了,例如放行搜索引擎的抓取

参考:

https://support.cloudflare.com/hc/zh-cn/articles/201720164-%E5%88%9B%E5%BB%BA-Cloudflare-%E5%B8%90%E6%88%B7%E5%B9%B6%E6%B7%BB%E5%8A%A0%E7%BD%91%E7%AB%99
https://dash.cloudflare.com/sign-up
# cf缓存解释
https://www.vpsche.com/12808.html