如何正确配置WordPress网站的Cloudflare
通过在您的站点前充当反向代理,Cloudflare是一种一体化的安全和性能产品,被全球超过12%的网站使用。作为一个WordPress用户,在你的网站上添加Cloudflare有助于提高网站性能,减少恶意机器人和黑客的影响。
正确配置后,对您站点的所有请求将首先到达Cloudflare服务器,然后该服务器将确定是将请求转发到源服务器、从缓存提供服务、阻止还是使用自定义规则进行处理。
在本指南中,我们将深入探讨WordPress的最佳Cloudflare设置,讨论缓存和安全设置,并向您展示如何为WordPress多站点安装配置Cloudflare。
如何为WordPress配置Cloudflare
Cloudflare WordPress插件
WordPress的Cloudflare自动平台优化
Cloudflare Argo和轨道炮
如何为WordPress Multisite配置Cloudflare
如何为WordPress配置Cloudflare
Cloudflare提供了多种安全和性能优势,但并不是所有的优势都与WordPress完全兼容。让我们深入了解一下Cloudflare的设置,以确定最适合你的WordPress网站的功能。
加密套接字协议层
速度
隐藏物
防火墙
加密套接字协议层
Cloudflare支持四种SSL/TLS加密模式——关闭、灵活、完全和完全(严格)。
关-不加密。
灵活—仅加密浏览器和Cloudflare之间的连接。
完整–端到端加密,但源服务器上允许自签名证书。
FUL(严格)–端到端加密,需要来自Cloudflare的免费原始证书或来自可信CA(证书颁发机构)的证书。我们建议使用完全(严格)SSL模式以获得最大的安全性。
对于想要在WordPress网站上使用Cloudflare的用户,我们建议在Pagoda Panel中生成一个免费的Let’s Encrypt SSL证书,并在Cloudflare中使用Full或Full (Strict)选项。
或者,您也可以生成Cloudflare原始证书以安装在您的原始服务器上。如果您的主机不提供免费的SSL证书,在您的服务器上安装Cloudflare原始证书将允许您使用完全(严格)SSL模式。
如果您使用在子域上托管的站点,并且根域使用Cloudflare的灵活SSL,则可以使用Cloudflare页面规则强制子域使用完整或完整(严格)SSL。
使用Cloudflare页面规则为子域启用完全(严格)SSL。
此选项允许您使用Cloudflare的灵活SSL,同时确保子域的Cloudflare完整(严格)SSL。
永远用HTTPS
我们建议启用此选项,将所有HTTP请求自动转发到HTTPS。
HSTS
HSTS代表“HTTP严格传输安全”,用于强制网络浏览器使用安全的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重写对于确保没有混合内容错误的安全浏览体验非常有用。
速度(速度)
大多数与性能相关的Cloudflare设置,如资产缩减和映像优化,都可以在“速度”选项卡中找到。
调整图像大小(仅适用于商业计划)
Cloudflare的图像大小调整功能仅适用于商业计划用户。在你的WordPress主题中正确实现后,这个函数可以用来生成缩略图并卸载到Cloudflare。与WordPress内置的缩略图生成功能相比,这有几个优点。
对于动态生成图像大小的站点,使用Cloudflare的图像大小调整功能可以减少CPU的使用——这使得您的站点可以在不增加CPU资源的情况下为更多的并发用户提供服务。Cloudflare图像大小调整还有助于减少磁盘空的使用,因为缩略图不必存储在服务器上。
Cloudflare图像大小调整的工作原理是在图像前面添加端点。看一下下面的例子,它展示了这个函数是如何工作的。
原始图片URL
https://your domain . com/WP-content/uploads/2020/01/picture . jpg
调整大小的图像的URL
https://your domain . com/cdn-CGI/image/fit = contain,format=auto,metadata=none,onerror=redirect,quality=70,width = 720/https://your domain . com/WP-content/uploads/2020/01/picture . jpg
您可以调整“width”参数来动态生成不同的缩略图大小,而不会给源服务器带来任何额外的资源负载。如果你在寻找一个类似Cloudflare的有图像大小调整功能的独立服务,Imgix和Cloudinary是不错的选择。
别忘了查看我们关于优化网页图片的深度指南。
波兰语(仅专业版)
Cloudpolish是一款图片优化服务,可以自动压缩JPG、PNG、GIF等图片文件。图像在Cloudflare的边缘处理,这意味着托管WordPress站点的服务器没有性能负担。Polish还支持谷歌的WEBP格式——这意味着优化后的WEBP图片将自动提供给Chrome、Brave和其他支持这种格式的浏览器。
出于几个原因,波兰语是WordPress网站的一个有用的特性。如果你使用的是ShortPixel或Imagify等图像优化插件,Polish可以显著降低服务器的CPU使用率——这可以给访问者带来更稳定的浏览体验。由于波兰语图片是在服务器之外存储和缓存的,所以你不用担心用光磁盘空来存储图片的WEBP版本。
自动缩小
Cloudflare的Auto Minify功能会自动收缩缓存的CSS、JSS和HTML资产。如果你不使用Autoptimize或WP-Rocket等WordPress插件来减少你的资产,我们建议你在Cloudflare中启用自动减少功能。
布罗特利
Brotli是GZIP的替代方案,后者是一种压缩算法,可以在提供给访问者之前减少Web请求的大小。与GZIP相比,Brotli提供了更高的压缩比,这意味着用户的页面加载速度更快。问题是,并不是所有的web浏览器都支持Brotli压缩。无论如何,我们建议启用Cloudflare的Brotli功能,因为来自不支持浏览器的请求只会回退到GZIP压缩。
增强的HTTP/2优先级(仅限专业版)
HTTP/2的引入通过并行化和多路复用为网站带来了显著的性能提升。Cloudflare增强的HTTP/2优先级功能更进一步。它会智能地解析您网站的HTML,以确定加载资产的顺序,从而获得最佳性能。根据Cloudflare的说法,增强的HTTP/2优先级可以减少高达50%的页面加载时间。
幻影(仅专业版)
Mirage是一种针对移动和低带宽连接的映像优化功能。启用Mirage后,在初始页面加载期间,图像将被替换为低分辨率占位符。页面加载后,全分辨率图像会延迟。
Mirage还可以将多个映像请求合并为一个请求,从而减少完全加载页面所需的往返次数。如果您的网站使用大量图片,并且面向拥有更多移动设备的用户,Cloudflare Mirage可以对性能产生积极影响。
火箭装载机
Rocket Loader是一个通过异步加载JavaScript资源来加速加载时间的功能。这样有效的减少了页面渲染阻挡的内容,从而加快了页面加载时间。我们建议您在启用Rocket Loader的情况下测试您的网站,看看它能否提高您的页面速度。如果你的WordPress站点依赖于以特定顺序加载的JavaScript资产,你可以通过在脚本标签中添加属性data-cfasync=”false “来绕过Rocket Loader。
缓存(高速缓存)
默认情况下,Cloudflare会缓存CSS、JS和图像文件等静态资产。请注意,默认情况下,Cloudflare不会缓存您的网站生成的HTML。
缓存级别
我们建议将缓存级别保持为“标准”,这允许使用唯一的查询字符串来访问资产的更新版本。
浏览器缓存有效期
如果您的服务器本身已经设置了浏览器缓存到期日期,我们建议您将浏览器缓存到期日期设置为“考虑现有标题”。如果您想用较短的过期时间覆盖此设置,请随意更改此设置。
防火墙(防火墙)
如果您的主机不提供可定制的防火墙,Cloudflare的免费计划包括一个允许五个自定义规则的基本防火墙。可以配置规则来阻止特定的IP地址、用户代理、请求方法、HTTP引用,甚至国家。
例如,如果你发现你的WooCommerce商店收到了大量来自目标市场以外国家的虚假订单,你可以使用Cloudflare的免费防火墙拦截来自全国的流量。
Cloudflare的Pro程序具有更强的Web应用程序防火墙(WAF)。WAF提供了一个特殊的托管规则集,这有助于进一步保护您的网站。例如,WordPress和PHP站点有一些规则集。
WordPress的Cloudflare托管规则集
对于大多数WordPress网站来说,Cloudflare的免费计划提供的安全级别已经足够了。但是,如果您正在运行需要更多保护的任务关键型业务站点,Cloudflare的专业WAF和托管规则集可以帮助进一步保护您的站点。
(推荐阅读:苏库里vs Wordfence)
网络(网络)
在Cloudflare的“网络”设置中,我们建议启用HTTP/2、HTTP/3(使用QUIC)和0-RTT连接恢复。
正如我们前面提到的,HTTP/2通过并行化和多路复用为HTTP/1.1带来了一些改进。类似地,HTTP/3通过使用一种称为QUIC的新的基于UDP的协议代替传统的TCP,进一步扩展了HTTP/2的性能。
启用HTTP/2、HTTP/3和0-RTT连接恢复。
的安全HTTP/3连接也受益于优化的握手例程,它缩短了连接时间。在Cloudflare dashboard中启用HTTP/3后,受支持的客户端将能够使用HTTP/3连接到Cloudflare服务器。
最后,Cloudflare的0-RTT连接恢复功能缩短了之前连接过您网站的访问者的加载时间。
页面规则(页面规则)
Cloudflare的页面规则功能允许您自定义特定URL的设置。页面对于禁用某些资产的缓存、更改所选页面的安全级别等非常有用。Cloudflare页面规则有两个关键组成部分——URL匹配模式和对匹配的URL执行的操作。在下面的屏幕截图中,您可以看到将www URL重定向到非www版本的Cloudflare页面的规则。
Cloudflare转发URL页面规则
此规则匹配以www.brianonwp.com开头的URL。请注意包含了星号字符,它允许您创建通配符匹配模式。把星号想象成“这里的任何东西”。在URL模式下,您可以看到这个页面规则被配置为将所有匹配请求重定向到https://brianonwp.com/ 301,其中“”是指匹配模式下的“第一个通配符”。
使用这样的页面规则,请求www.brianli.com/specific-page/将被重定向到brianli.com/specific-page/..
借助Cloudflare页面规则,您可以将特定设置应用于任何匹配的URL。查看下面可应用于页面规则的设置列表。有些设置甚至可以合并成一个页面规则!
Always Online–启用或禁用Cloudflare的“Always Online”功能,如果原始服务器离线,该功能将提供页面的静态HTML副本。
始终使用HTTPS–强制使用HTTPS来匹配URL。
autofy–启用或禁用HTML、CSS和JS缩减。
自动HTTPS重写–支持将HTML格式的HTTP URL重写为https版本。
browser cache TTL–指定匹配URL上的浏览器缓存TTL。例如,您可以为不同类型的文件设置不同的浏览器缓存TTL。
浏览器完整性检查–启用或禁用Cloudflare的“浏览器完整性检查”功能,该功能检查HTTP标头以删除僵尸程序和恶意流量。
缓存欺骗盔甲–启用或禁用Cloudflare的“缓存欺骗盔甲”功能,该功能通过确保资产的文件扩展名与其“内容类型”相匹配来防止Web缓存欺骗攻击。
缓存级别–配置匹配URL的缓存级别。
DisableApps禁用Cloudflare应用程序集成以匹配URL。
禁用性能–禁用与URL匹配的性能相关功能。
禁用轨道炮–禁用轨道炮以匹配URL。
禁用安全–禁用匹配URL的安全功能。
edge cache TTL–指定边缘缓存TTL(资产在Cloudflare边缘网络上缓存的时间量)。
电子邮件混淆–启用或禁用Cloudflare的电子邮件混淆脚本,该脚本通过混淆电子邮件地址来减少成功的机器人抓取。
fording URL–创建一个301或302重定向到另一个URL。
IP地理位置标头—启用或禁用Cloudflare的IP地理位置HTTP标头。
机会加密–允许客户端通过安全的TLS通道访问HTTP URL。
原始缓存控制–指定您希望Cloudflare如何响应原始服务器的“Cache-Control”指令。
Rocket Loader–在匹配的URL上启用或禁用rocket Loader。
安全–指定匹配URL的安全级别。
服务器排除–启用或禁用Cloudflare的“服务器端排除”功能,该功能允许您通过在标签中包装HTML来隐藏可疑流量中的敏感信息。
SSL–指定匹配URL的SSL级别(禁用、灵活、完全或完全严格)。
Cloudflare WordPress插件
Cloudflare团队维护着一个官方的WordPress插件。虽然这个插件不是绝对的需求,但它确实提供了一些不错的功能,包括WordPress优化的Cloudflare设置、WordPress特定的安全规则集、自动缓存清除、HTTP/2服务器推送等。
Cloudflare WordPress插件设置
WordPress的Cloudflare自动平台优化
Cloudflare的WordPress自动平台优化(APO)是专门为WordPress网站提供的性能优化服务。Cloudflare APO直接在Cloudflare edge网络上缓存你的WordPress站点的HTML页面。这是对静态资产(CSS、JS、图片等)的典型缓存的一大飞跃。)上CDN。在我们的基准测试中,我们发现启用Cloudflare APO将导致70-300%的性能提升,具体取决于测试位置。
CloudAPO for WordPress的工作原理是将页面的HTML副本存储在WorkerKV中,这是一种全球分布式的键值存储服务。启用APO后,对您站点的请求将由Workers KV或Cloudflare的边缘缓存提供服务,而不是由您的源服务器提供服务。这是WordPress性能领域的一大进步,因为有了APO,WordPress站点不再受源服务器位置的限制。
在Cloudflare dashboard中为WordPress启用自动平台优化
以前,使用传统的CDN设置,HTML页面仍然必须由源服务器提供服务。例如,如果你的网站的源服务器位于美国,来自伦敦的访问者必须等待从美国发送的HTML文档。使用APO,HTML和其他静态资产是由伦敦附近的Cloudflare数据中心提供的。
CloudApo与传统的博客、新闻网站、登陆页面和其他不依赖动态功能的网站(WooCommerce商店、论坛等)最兼容。).对于登录用户和包含特定cookie的页面(如WooCommerce),APO会自动绕过Cloudflare的HTML缓存。APO作为Cloudflare Pro、Business和Enterprise plans的免费服务提供。对于免费的Cloudflare用户,APO是一个每月5美元的插件。
如果您有兴趣了解更多关于Cloudflare APO的信息,请点击此处查看我们的深度指南。
Cloudflare Argo和轨道炮
Cloudflare提供了额外的性能产品,可能有助于进一步提高您的WordPress网站的性能。这些功能需要额外付费,但如果你想在网站优化上加倍努力,它们或许值得一看。
南船星座
Argo是一项Cloudflare附加服务,可以为您的网站提供“智能路由”。启用Argo后,流量将绕过Cloudflare网络中的拥塞区域。在我们的测试中,Argo减少了20-30%的页面加载时间。如果你是Cloudflare用户,想在性能优化上多下功夫,那么尝试Argo可能会产生积极的效果。
轨道炮
Cloudflare的Railgun是一种WAN产品,可以在您的服务器和Cloudflare的服务器之间建立安全隧道。Railgun旨在通过仅提供请求之间的总体差异来加速未缓存内容的交付。例如,如果页面A和页面B具有相同的页眉和页脚结构,但主体内容不同,Railgun将意识到这一点,并仅通过高度压缩的二进制数据流来处理差异。
Rail仅适用于Cloudflare的商业和企业计划,并要求您的web主机在您站点的服务器上安装其他软件。对于大多数用户来说,使用Cloudflare来保持快速加载时间不需要轨道炮加速。然而,如果你正在运行一个无法缓存的高流量WooCommerce商店或论坛,Railgun可能有助于加快你的网站。
如何为WordPress Multisite配置Cloudflare
如果您将Cloudflare与WordPress multisite一起使用,您应该在设置它时考虑一些特殊的注意事项。
SSL设置
为了演示WordPress多站点的Cloudflare SSL设置,我们创建了一个测试子域多站点,因为如果使用子目录多站点,应该不会遇到任何SSL问题。
这是我们的测试子域WordPress多站点的结构:
主sites–brianwp.com和www.brianwp.com
子网站1–site1.brianwp.com
子网站2–site2.brianwp.com
首先,我们需要为多站点添加一个域。
同样,域在Cloudflare中配置了适当的A记录。Cloudflare代理也已启用,如橙色云图标所示。
WordPress多站点的Cloudflare DNS记录
要在Ful(严格)SSL模式下使用Cloudflare,源服务器的SSL证书上必须存在所有关联的域。有两种方法可以做到这一点。
让我们加密或支付SSL
如果您的主机支持免费的加密SSL,请继续生成覆盖所有多站点域的SSL证书。
在pagoda面板上,您可以轻松地生成覆盖所有域的SSL证书。
在Pagoda面板中为您的多站点生成SSL证书
云起源SSL证书
或者,您可以生成涵盖多站点域的Cloudflare Origin SSL证书。要生成原始证书,请导航到SSL/TLS >源服务器,然后单击“创建证书”。
生成Cloudflare原始证书
原始证书生成菜单分为三个部分。在第一部分中,选择“让cloud flare生成一个私钥和一个CSR”,除非您有特定原因需要提供自己的凭据。
在第二部分,输入SSL证书需要覆盖的域和子域。您只能为您的Cloudflare帐户中的域生成证书。
最后,在第三部分,选择证书的有效期。
为所有多站点域设置正确的SSL证书后,您将能够在推荐的完全(严格)SSL模式下使用Cloudflare。如果将来需要向多站点添加其他域或子域,请确保生成一个覆盖其他域的新SSL证书。
WordPress多站点的页面规则
Cloudflare的其他安全和性能功能适用于根域下的所有子域。换句话说,如果在brianwp.com启用了CSS缩减,我们的主要站点、site1.brianwp.com和site2.wpbrianli.com也会启用它。
在某些情况下,这种默认行为可能会导致问题。例如,您可能不希望仅仅因为HTML、CSS和JS优化与单个子站点不兼容就全局禁用它。要解决这个问题,您可以使用自定义页面规则来有选择地禁用特定子域的功能。
在下面的例子中,我们为*site2.brianwp.com/*设置了一个页面规则。字符*用于指定通配符行为。你可以把它想象成“这里的任何东西”。
对于这个页面规则,我们禁用了HTML、CSS和JS的自动缩减,禁用了Rocket Loader,绕过了Cloudflare缓存,关闭了自动HTTPS重写。
创建选择性的Cloudflare页面规则来定位WordPress子网站
如果你使用的是Cloudflare的免费计划,请注意它只附带了三个页面规则。如果您需要对多个子网站进行选择性调整,您需要升级到Pro plan或购买额外的页面规则。
总结
了解如何为你的WordPress网站配置Cloudflare,以及如何正确地将其与你的主机堆栈集成,可以对你的网站速度和安全性产生积极的影响。