• home > tools > cloudServices > CDN >

    cloudflare加速个人网站和安全防护设置指北

    Author:zhoulujun Date:

    之前一直使用七牛云和腾讯云的cdn加速,现在使用Cloudflare免费加速,不限流量。其中配置也遇到点点疑惑之处。也查了不少资料。所以干脆这能力一篇大全,下次如果遇到问题,直接看这篇文章就好

    国内的cdn,比如七牛云10g的http免费流量(不包括https),腾讯云有50g流量,但是都需要 beiAn,cloudflare 算是良心企业了

    cloudflare基本配置这里就不讲解了,修改域名 DNS服务器,指向cloudflare,cloudflare配置域名解析。《服务器升级至centos8 网站配置-php与mysql从5.6升级到php7与msyql8》,这篇末尾已经讲过

    Cloudflare CDN缓存 Caching 设置

    这里主要是针对 CDN 缓存的一些设置,还是比较重要的,建议谨慎对待。

    • Purge Cache:其实就是让你能够手动清除某个链接的缓存或者干脆全部清除。全站内容更新,或者文章更新可以手动刷新。

    • Caching Level:设置 Cloudflare 的缓存等级。cloudflare无法设置某个链接或者某种文件类型,设置缓存模式,比较遗憾。

      免费用户一共有三个选项可以选:

      • No Query String请求没有查询字符串时才会命中缓存

      • Ignore Query String忽略查询字符串,对所有人提供相同的缓存

      • Standard:每次查询字符串更改时,都会提供不同的缓存。

    • Browser Cache Expiration:设置一个浏览器缓存的过期时间。这里简单解释一下,浏览器会在你第一次访问某个网站的时候,根据网站文件上设置的过期时间来在一定时间内把这个资源缓存存储到本地,下次在请求相同文件的时候,就不用等待服务器把文件发过来了,只要设置的时间没有到,浏览器就会直接使用本地的缓存文件。这个设置项就是对我们 CDN 的缓存资源设置一个过期时间,好让浏览器知道什么时候再来找服务器要资源。浏览器最终是以cloudFlare的缓存时间为准,而不是服务器给定的缓存时间(因为请求的是cloudflare,没有缓存服务器的HTTP请求头)

    • Always Online:黑科技之一,简单的说就是会把你网站最受欢迎的一些页面缓存起来,如果你的服务器挂了,Cloudflare 也能把这些缓存的页面提供给访客,提高用户体验。这个一定要开启

    • Development Mode:开发者模式,就是暂时让请求直接通过,全部到达源服务器,服务器调试的时候,可以开启。

    • CSAM Scanning Tool:如果你的图片视频,含有18禁内容(少儿不宜内容,比如我的网站临时777没有关,就被攻击,放入黄色内容),会邮件告知你。像我的网站,自己维护。开不开启无所谓,个人还是开启了。

    Cloudflare SSL证书 与https配置

    Overview 菜单,展示

    SSL/TSL 连接模式

    有四种模式: OFF、Flexible SSL、Full SSL、Full SSL (Strict)

    • OFF:关闭 HTTPS 访问,所有访客重定向到 HTTP

    • Flexible:访客访问你网站用 HTTPS,但是 CDN 到你源服务器拉取东西时用的 HTTP 协议。这个SSL模式一键实现用户到CF的SSL加密模式,我们服务器中的网站可以不安装SSL证书,然后用户打开也可以看到是HTTPS格式。根据CF的建议,如果确实没有办法在服务器端给网站安装证书的才使用这个办法

    • Full:这个模式区别在于CF到服务器端是可以使用自签证书的。此选项适合源服务器用的是自签名 SSL 证书或无效证书的情况

    • Full (Strict)需要CF到服务器端安装SSL证书而且必须是认证过的证书,不可以自签证书

    总结,出了OFF,其他都是使用https与用户连接。建议使用Full (Strict),如果服务器没有办法上https,就选择Flexible。

    菜单:Edge Certificates

    Cloudflare SSL功能选项

    • Always use HTTPS强制所有的链接都采用HTTPS跳转模式,可以起到强制不用HTTP的地址目的

    • HTTP Strict Transport Security (HSTS):HTTP Strict Transport Security(通常简称为HSTS)是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源,而不是HTTP ,具体参看《HTTP严格安全传输之HSTS:HTTP Strict Transport Security

    • Opportunistic Encryption:这个中开启之后,浏览器可以从HTTP / 2和SPDY的改进性能中受益,让他们知道您的网站是通过加密连接提供的。 浏览器将继续在地址栏中显示“http”,而不是“https”。对普通站长来说的话其实开不开影响都不大。

    • Automatic HTTPS Rewrites:如果你的站点是 HTTPS 的,然后使用了 HTTP 的资源,浏览器会产生站点含有混合内容的提示,开启之后,Cloudflare 会尝试把那些支持 HTTPS 访问的资源重写替换成 HTTPS 协议访问。国内直至2019,https还没有普及,第三方很多服务还是只有http支持,建议不开启。

    • Onion Routing 设置项:照顾用户的隐私用的,开启洋葱路由的功能支持,开不开看个人。

    • TLS 1.3 设置项

    • 开启 TLS 1.3 新协议支持:建议开启。其中有个 Enable+0RTT 的设置,是指的同时也开启 0-RTT 功能。0-RTT 可以让浏览器能够更快的和服务器进行回话,但会牺牲小部分安全性

    • Authenticated Origin Pulls:TLS客户端证书提供原始的认证。

    • Disable Universal SSL 设置:这个选项点击了之后,你的网站如果没有有效的证书,就没办法通过 HTTPS 访问了,非必要不建议动这个。

    • Require Modern TLS:只能使用TLS协议的现代版本1.2和1.3(如果启用)。 这些版本使用更安全的密码,但可能会限制旧版本浏览器访问您网站的流量。

    本人没有加入cloudFLare就已经是全站https,现在准备替换为cloudflare 的ssl证书,申请Asian trust的证书,一年需要申请的一次,cloudflare申请一次,可以用10年8年的,还是蛮好的。

    cloudflare Firewall 设置

    • Security Level 设置项:设置你网站的安全防护等级,主要就是让 Cloudflare 自动帮你 Ban 掉一些恶意请求,其中大名鼎鼎的 I’m Under Attack! 就是让你在攻击时开启的默认的话选 Medium 中级就可以了。具体可以参看《博客提速之免费CDN应用

    • Bot Fight Mode:自动识别非法流量,cloudflare阻止相关流量。主要是各种黑蜘蛛,非法网络爬虫,具体看:Understanding-Bot-Fight-Mode

    • Challenge Passage 设置项:给通过了安全防护的 bad IP 允许访问的时间,过期了会再次让验证。

    • Browser Integrity Check:检测ip,一旦你的ip进入cdn服务商认定的黑名单,就会出现验证码提示。可能会导致,安全级别Basic Security Level设置为高级后多数用户访问博客需要验证码验证

    • Privacy Pass Support:作用就是兼容一下某个浏览器隐私扩展,降低这种用户撞上防火墙然后让验证的几率。

    • IP Firewall 设置项:设置那些一些针对 IP 的防火墙规则,为了防止意外发生,最好把你源服务器的 IP 加入白名单。

    • User Agent Blocking:基于 User Agent 浏览器标识来创建防火墙规则

    防火墙规则设置,本人是没有配,没有过大研究,请大神指教。有相关内容,也请告知我一下,多谢。

    cloudFlare Network 设置

    这一部分的设置我们需要动的不多,很多都是默认帮我们设置好了且不能更改的,我就简单说几个能改的吧。

    • HTTP/2:开启即可支持http2,推荐开启。关于http2,推荐阅读《再谈HTTP2性能提升之背后原理—HTTP2历史解剖

    • HTTP/3 (with QUIC):和http2一样,原本是来自于谷歌的黑科技,加快站点访问速度吧。目前该技术已经纳入了下一代 HTTP/3 协议中。现在nginx等服务器官方默认还没有http3模块,建议还是开启号。

    • IPv6 Compatibility:IPv6兼容模式。支持IPv6访问。以上三点,如果服务器本身默认支持,cloudflare默认就会开启。

    • WebSockets:打开允许 WebSockets 连接你的源服务器。个人博客没有WebScockets服务。建议关闭。

    • Pseudo IPv4 设置项:这个选项的作用是在当你的某个访客用 IPv6 地址访问你的网站,而你的服务器只支持 IPv4 访问时才有用的,它会在头部信息中返回一个 IPv4 地址。现在墙外的鸡都是支持IPv6的,vps开启IPv6,这个默认设置关闭即可。

    • IP Geolocation:开启之后,CDN 会把访客的国家信息通过请求头的方式发给源服务器知道。建议开启

    • Maximum Upload Size 设置项:字面意思,设置访客在一次请求能最大能上传到你服务器的数据量。

    • 0-RTT Connection Resumption:0-RTT 可以让浏览器能够更快的和服务器进行回话,但会牺牲小部分安全性。

    Speed 设置

    此部分主要是帮你优化站点打开速度的,建议一个一个配置好,能对你站点的打开速度有很大的改善。

    • Auto Minify 设置项:设置是否自动优化 JavaScript,CSS 和 HTML 网页,个人建议全部选上。不过开启gzip的情况下,优化性能有限。

    • Enable Accelerated Mobile Links 设置项:让你网站的外部链接可以通过 AMP 的方式打开。AMP 是谷歌的移动页面技术,具体的请自行搜索。打开之后,默认会对所有域名生效,通过 Select Subdomain(s) 可以设置只针对选择的域名生效。国内站点,没有开启的必要。我个人站点是没有开启

    • Brotli 设置项:Brotli 是谷歌推出的压缩技术,这个本博客在其它地方也有过介绍,它在某些时候能比大多数浏览器默认的 gZip压缩效果要好,且现代浏览器也大多支持它,建议开启。

    • Rocket Loader 设置项:让你的 Javascripts 异步执行,达到加快网页呈现速度的效果,属于黑科技系列。但是我的网站,本身就设置 defer 和 asyn属性,不需要。而且在国内站点,谷歌的服务加载不上。反而影响网站的加载。像本站针对 墙内用户,还是不开启好。

    • Mobile Redirect 设置项:把移动设备访问你网站的用户重定向到某个域名。

    Page Rules(页面规则)

    正对url规则 匹配不同缓存策略,包括缓存时间(如腾讯云CDN,高级缓存配置(目前只可以设置缓存时间))

    不同网站,缓存规则不同。这里不做讲解

    推荐文章列表:

    CloudFlare免费CDN优化指南 https://zhuanlan.zhihu.com/p/29905253

    CDN-Cloudflare 免费版的域名接入与 CDN 设置指南 https://woguide.com/archives/5885.html



    转载本站文章《cloudflare加速个人网站和安全防护设置指北》,
    请注明出处:https://www.zhoulujun.cn/html/tools/cloudServices/CDN/8254.html