Cloudflare 是一种多合一的安全性和性能产品,全球超过 12% 的网站都在使用它。作为 WordPress 用户,为网站设置 Cloudflare 可以帮助提高网站性能并减少恶意机器人和黑客的影响。

正确配置后,对站点的所有请求都将首先命中 Cloudflare 服务器,该服务器将确定是将请求转发到原始服务器,从缓存中提供服务,阻止还是使用自定义规则进行处理。

在本文章中,我们将对 WordPress 的最佳 Cloudflare 设置进行更深入的研究,重点介绍 Cloudflare 缓存和安全设置,并向你展示如何为 WordPress 多站点安装配置 Cloudflare。

如何为 WordPress 配置 Cloudflare 设置

Cloudflare 提供了多种安全性和性能优势,但并非所有优势都与 WordPress 完全兼容。让我们深入了解 Cloudflare 的设置,以确定适用于 WordPress 网站的最佳功能。

SSL 协议

Cloudflare 支持 SSL / TLS 加密的四种模式 - 关闭,半加密,完全加密和严格加密。

  1. 关闭:暂停HTTPS访问和加速,支持HTTP访问和加速。
  2. 半程加密:仅在用户到CDN节点的访问采用HTTPS服务。
  3. 全程加密:用户到CDN节点和CDN节点到源站都采用HTTPS服务。但是不校验源站证书。须源站开通并支持SSL,同时支持自签名证书和受信任的CA签发的证书。
  4. 严格加密:用户到CDN节点和CDN节点到源站都采用HTTPS服务。且校验源站证书。须源站开通并支持SSL,只支持受信任的CA签发的证书。

你可以生成 Cloudflare 原始证书以安装在原始服务器上。如果服务商不提供免费的 SSL 证书,则在服务器上安装 Cloudflare 原始证书将允许你使用完全(严格)SSL 模式。

我们建议启用此选项以将所有 HTTP 请求自动转发到 HTTPS。

HSTS

HSTS 代表 “HTTP 严格传输安全性”,用于强制 Web 浏览器使用安全的 HTTPS 连接。在 Cloudflare 上启用 HSTS 可确保 HTTP 请求永远不会到达你的原始服务器。如果你的站点已设置为使用 HTTPS,则建议你也在源服务器上配置 HSTS。

最低 TLS 版本

TLS(传输层安全性)是一种加密协议,它允许通过网络安全地传输数据。默认情况下,Cloudflare 为协议版本设置 TLS 1.0。为了符合法规要求,某些安全标准(例如 PCI DSS 3.2)要求使用 TLS 协议的最新版本。如果你的站点需要特定的 TLS 版本,则可以通过转到 SSL / TLS > 边缘证书 > 最低 TLS 版本来更改设置。

自动 HTTPS 重写

此功能将检查 HTML 代码中的 HTTP 资源 URL,以查看它们是否可以通过 HTTPS 访问。如果可以通过 HTTPS 方法访问,它们将自动使用 HTTPS 变体进行重写。自动 HTTPS 重写对于确保安全的浏览体验而不会出现混合内容错误很有用。

图像调整大小(仅限企业)

Cloudflare 的图像调整大小功能仅适用于业务计划用户。在 WordPress 主题中正确实现后,此功能可用于将生成的图像缩略图卸载到 Cloudflare。与 WordPress 中的内置缩略图生成功能相比,这具有多个优点。

对于动态生成图像大小的站点,使用 Cloudflare 的图像调整大小功能可以减少 CPU 使用率–这使你的站点可以为更多的并发用户提供服务,而不会增加 CPU 资源。调整 Cloudflare 图像的大小也有助于减少磁盘空间使用,因为不必将缩略图存储在服务器上。

调整 Cloudflare 图像大小的方法是在图像的端点之前添加。请看下面的示例,该示例显示了该功能的工作原理。

压缩静态文件

Cloudflare 的自动缩小功能会自动缩小缓存的 CSS,JSS 和 HTML 资产。如果你不使用诸如 Autoptimize 或 WP-Rocket 之类的 WordPress 插件来缩小资产,我们建议在 Cloudflare 中启用自动缩小功能。

Brotli 压缩

Brotli 是 GZIP 的替代方案,GZIP 是一种压缩算法,可以在将 Web 请求提供给访问者之前减小其大小。与 GZIP 相比,Brotli 提供了更高的压缩率,从而为用户带来了更快的页面加载速度。问题是,并非所有的 Web 浏览器都支持 Brotli 压缩。无论如何,我们建议启用 Cloudflare 的 Brotli 功能,同时如果浏览器不支持 Brotli 压缩则将请求降级到到 GZIP 压缩。

增强的 HTTP / 2 优先级(仅限 Pro)

使用 HTTP / 2 带来的通过并行化和复用的网站显著的性能提升。Cloudflare 增强的 HTTP / 2 优先级排序功能通过智能地解析你网站的 HTML 来确定加载资产的顺序,以实现最佳性能,从而使它进一步迈进了一步。根据 Cloudflare 的说法,增强的 HTTP / 2 优先级可以将页面加载时间最多减少 50%。

Rocket Loader

Rocket Loader 是一项功能,可通过异步加载 JavaScript 资源来加快加载时间。这有效地减少了页面的渲染阻止内容,从而缩短了页面加载时间。我们建议你在启用了 Rocket Loader 的情况下测试你的网站,看看它是否可以提高页面速度。如果你的 WordPress 网站依赖于按特定顺序加载 JavaScript 资产,则可以通过向data-cfasync="false"script 标签添加属性来绕过 Rocket Loader。

防火墙功能

如果你的主机未提供可自定义的防火墙,则 Cloudflare 的免费计划包括一个基本防火墙,该防火墙允许五个自定义规则。可以将防火墙规则配置为阻止特定的 IP 地址,用户代理,请求方法,HTTP 引荐来源甚至国家。

例如,如果你发现 WooCommerce 商店从目标市场之外的国家 / 地区收到大量假订单,则可以使用 Cloudflare 的免费防火墙来阻止来自整个国家 / 地区的流量。

Cloudflare 的 Pro 计划具有更强大的 Web 应用程序防火墙(WAF)。WAF 提供专门的托管规则集,有助于进一步保护你的站点。例如,有一些针对 WordPress 和 PHP 网站的规则集。

对于大多数 WordPress 网站而言,Cloudflare 的免费计划提供的安全级别已足够。但是,如果你正在运行的任务关键型业务站点需要更多保护,则 Cloudflare 的 Pro 级 WAF 和托管规则集可以帮助进一步保护站点。

网络

在 Cloudflare 的 “网络” 设置中,我们建议启用 HTTP / 2,HTTP / 3(带有 QUIC)和 0-RTT 连接恢复。

如前所述,HTTP / 2 通过并行化和多路复用对 HTTP / 1.1 进行了一些改进。同样,HTTP / 3 通过使用称为 QUIC 的新的基于 UDP 的协议而不是传统的 TCP 进一步扩展了 HTTP / 2 的性能。

安全的 HTTP / 3 连接还受益于优化的握手例程,该例程可缩短连接时间。在 Cloudflare 仪表板中启用 HTTP / 3 后,受支持的客户端将能够使用 HTTP / 3 连接到 Cloudflare 服务器。

最后,Cloudflare 的 0-RTT 连接恢复功能可缩短以前连接到你网站的访问者的加载时间。

使用 Cloudflare 页面规则缓存 HTML

Cloudflare 仅缓存 CSS,JS 和图像文件等静态资产。为了安全起见,Cloudflare 默认情况下不缓存 HTML。WordPress 和其他基于 CMS 的网站是动态的,因为它们要求在安全的后端环境中进行管理。启用 HTML 缓存后,这些安全的后端页面将被缓存,并且对任何用户可见 - 登录或注销。

通常,除非你的站点是静态站点,否则我们建议不要将 Cloudflare 配置为缓存所有内容。例如,由静态网站生成器(如 Gatsby 和 Hugo)生成的大多数网站没有动态功能,这些功能可能会因全页缓存而中断。