如何使用边缘缓存提高WordPress性能
当您的网站要为来自世界各地的访问者提供服务时,缓慢的加载时间和高延迟确实会影响访问体验。无论您是经营个人博客、电子商务商店还是托管应用程序,速度和响应速度都会影响用户体验。
不满意的用户不会停留太久。如何改善用户体验?
幸运的是,有一些强大的工具可以显著提高网站性能,其中最有效的就是边缘缓存。
如果你曾为 WordPress 网站加载速度慢或响应迟缓而苦恼,那么本指南就是为你准备的。让我们一起探索边缘缓存的世界,学习如何为 WordPress 增效。
什么是边缘缓存?
边缘(the edge)到底是什么,它对网站性能有什么影响?
边缘计算就是缩短客户端(网站访问者)与源服务器(网站托管地)之间的物理距离。
许多 CDN 使用边缘服务器来实现这一目标。一般来说,CDN 是通过分布在世界各地的集中数据中心来工作的。但是,许多这些数据中心在地理位置上仍然远离大多数用户。
“边缘” 是 CDN 的外围或最靠近终端用户的网络基础设施,边缘服务器通常放置在互联网服务提供商和 CDN 连接的物理互联网交换点,以拉近这段距离。
边缘缓存是一种强大的技术,它利用这一巨大的网络桥梁,在离用户更近的地方存储网站内容副本,从而缩短从原始服务器获取数据所需的时间。
边缘缓存的工作原理
当用户从网站请求图片、视频或网页等内容时,通常会将请求转发到最近的边缘服务器,而不是直接转发到原始服务器。
边缘缓存的工作原理是在这些边缘服务器上存储静态和动态内容。静态内容,如图片、CSS 文件和 JavaScript,对所有用户都保持不变,可以长时间缓存。动态内容可能会经常变化,需要更谨慎的缓存策略。
通过在边缘缓存内容,对相同内容的后续请求可直接从边缘服务器发送,而无需从源服务器检索。
除了减少服务器的负载,这还能最大限度地减少数据的传输距离,缩短加载时间,减少延迟,提高整体性能。
边缘缓存对拥有全球受众的网站尤其有益。通过利用 CDN 广泛分布的边缘服务器,您的全球用户可以快速、可靠地访问内容。
哪些网站可受益于边缘缓存?
边缘缓存适用于各种网站,从简单的静态网站到完全交互的应用程序。让我们来详细了解一下哪些类型的网站可以从边缘缓存提供的性能显著提高中获益。
静态网站
静态网站由很少更改的固定内容组成,是边缘缓存的理想选择。
这些网站通常包括不使用动态内容的博客、作品集、登陆页面和信息网站。HTML、CSS、图片等资产和 JavaScript 等客户端脚本是网站的全部内容。
虽然边缘缓存适用于某些类型的动态内容,但需要更多的设置。静态网站的预渲染特性非常适合边缘缓存,因为缓存文件可以在数周或数月内保持更新。
边缘缓存消除了从原始服务器反复获取不变内容的需要,从而可以立即访问缓存资源,带来更流畅的浏览体验。
此外,静态网站占用的服务器负载或带宽很少,因此与使用大量服务器端脚本或频繁调用数据库的网站相比,缓存和提供静态网站的速度更快,成本效益更高。
交互式应用程序
对于严重依赖交互式应用程序或提供动态内容的网站,包括电子商务平台或社交媒体网络,边缘缓存在优化性能方面发挥着重要作用。
当涉及动态和个性化内容时,传统的缓存方法往往不那么有效。长期以来,只有图片和 HTML 等静态内容可以缓存。
由于脚本本身可以从 CDN 边缘服务器进行部署,边缘缓存的出现使情况发生了变化。
Cloudflare Workers 就是一个例子,它是在 Cloudflare CDN 上运行的 Javascript 函数。这样,响应用户输入的动态代码就可以在边缘服务器上运行,并立即到达世界各地的用户。
Cloudflare Workers 允许动态代码在边缘服务器上运行。
因此,您可以在不影响交互性的情况下为访问者提供无缝体验。
高要求和高资源网站
处理高流量或资源密集型应用程序的网站,如流媒体平台或在线游戏门户网站,可以从边缘缓存中大大受益。
这些网站通常提供大文件,如视频、音频流或高分辨率图像,这会给源服务器和网络带宽造成压力,导致缓冲和延迟。
边缘缓存可以通过最靠近访问者的边缘服务器来存储和提供这些大型文件,从而减轻服务器的负担。此外,边缘服务器的分布式特性使您能够处理大流量峰值,并随着用户群的增长而扩展。
电子商务网站
在电子商务商店中,每一秒都可能决定潜在客户的去留,因此不能浪费一分一秒。
边缘缓存通过缓存动态内容(如产品列表、定价信息和用户会话)在这方面发挥了很好的作用,这些内容需要快速可靠的交付。它还能在边缘服务器上缓存经常访问的产品页面、图片和其他资源。
不幸的是,电子商务网站经常成为 DDoS 攻击的目标,这种攻击可能具有毁灭性。得益于边缘服务器和整个 CDN,负载平衡技术可将恶意流量分散到数百个服务器上,这样您的合法客户就可以继续购物。
此外,偶尔出现的节假日流量高峰也能轻松应对。
无论您是小型精品店还是大型市场,边缘缓存都能为您提供无缝、安全的购物体验,而不是缓慢、令人沮丧的购物体验。
媒体流网站
实时流媒体、视频流媒体、音乐流媒体–所有这些对服务器的要求都非常高。
而最让访客头疼的莫过于他们最喜欢的歌曲或正在欣赏的视频暂停缓冲。对于一般网站来说,一定程度的延迟是可以接受的,但对于媒体流来说就不一样了。
边缘缓存对于提供流畅、不间断的播放至关重要。视频和音频文件不会经常变化,因此可以在离访问者更近的边缘服务器上缓存这些文件。这对于提供高清视频尤为重要,因为高清视频非常耗费精力,网络拥塞也是一个大问题。
即使是实时内容也能从边缘缓存中受益。虽然很难对实时内容进行缓存,但世界各地的用户可以连接到离他们最近的边缘服务器,即使观看人数激增到数千人,也不会对原始服务器造成太大压力。
有了边缘缓存,媒体流网站就能提供优质的观看体验,让受众持续参与,并不断回访。
游戏平台
就像媒体流一样,游戏也是一种不能接受延迟的体验–玩家不会在延迟和反应迟钝的游戏中停留太久。
对于多人游戏来说尤其如此,即使是轻微的故障也会严重破坏玩家的游戏乐趣。
虽然开发人员在一定程度上有责任优化他们的游戏,不进行不必要的网络调用,但使用拥有大量边缘服务器的 CDN 来保持游戏流畅运行也同样重要。
边缘服务器可用于缓存图形和音频文件等资产,并在玩家到达时将其流式传输给玩家。它还可以缓存即将到来的更新文件,甚至在某些情况下缓存整个游戏文件本身。
此外,游戏服务器是 DDoS 攻击的另一个主要目标,而边缘服务器可以帮助您卸载任何可能出现的恶意流量,或在新玩家突然涌入时快速扩展。
在线学习平台
学习管理系统和其他教育网站包含许多可以缓存的不同类型内容。
图片、视频、音频、互动游戏和演示、实时流、测验和其他互动材料都可以缓存,以便更高效地向学生传送。
当学生注册人数较多时,分布在全球边缘服务器上的数据也非常有用。速度慢、性能差的 LMS 会给学生带来糟糕的学习体验。
博客、新闻和信息网站
博客和信息网站由于使用了大量静态内容,因此与边缘缓存的配合尤为默契。虽然您可能偶尔会更新文章和其他资源,但更新频率很低,因此缓存可以保持很长时间。
通过将经常访问的文章、图片和多媒体内容缓存到离用户更近的边缘服务器上,博客可以缩短加载时间,提高整体响应速度。这样,读者在浏览文章目录时就不会中断或延迟。
博客在全球范围内广为流传,这也使得边缘缓存成为即使在流量高峰期也能保持全球访问性的重要组成部分。你永远不知道一篇文章何时会成为病毒。
何时不使用边缘缓存
虽然边缘缓存在优化网站性能方面有很多好处,但在某些情况下,它可能效果不佳。
高度动态或实时内容
虽然边缘缓存在优化静态内容甚至某些动态内容的交付方面表现出色,但在缓存高度动态的内容(尤其是实时变化的内容)时却存在局限性。
频繁更新的内容或针对每个用户的个性化内容可能不适合在边缘缓存。
Cloudflare 等现代 CDN 推出了一些功能,可以更有效地处理某些类型的动态内容,比如从边缘服务器本身执行代码。但并非所有内容都可以缓存–至少在没有大量技能、高级知识和复杂的 CDN 设置的情况下是如此。
在缓存不可行或不实际的情况下,您可以利用浏览器缓存、优化资源以减小文件大小,并实施更高效的代码来降低服务器响应时间。
个性化内容
边缘缓存并不适合为个人用户提供量身定制的内容。缓存的主要优势之一是通过边缘服务器提供经常访问的内容,以便世界各地的用户都能快速下载。如果只有一个人会看到,那么缓存就没有什么意义了。
电子商务网站上的个性化推荐、定制的新闻源或用户特定的仪表板通常无法缓存,因为它们依赖于实时数据或交互。
与其依赖边缘缓存,您可以实施动态内容交付策略,如客户端脚本、浏览器缓存、内容预取和数据压缩,以优化个性化内容的交付。
避免复杂的缓存规则
实施边缘缓存可能会带来额外的复杂性,尤其是如果你的网站已经有了复杂的缓存规则。
例如,如果与现有规则(如自定义缓存控制头、缓存失效或缓存旁路规则)一起使用,边缘缓存可能难以设置或导致意想不到的结果。
这并不是说这是不可能的。只是需要熟练的开发人员进行正确设置。源服务器和边缘服务器之间不匹配的缓存配置会导致缓存冲突或显示过时的内容。
根据现有缓存架构的复杂程度,整合边缘缓存可能是一项艰巨的任务。
超大文件
边缘缓存针对传输中小型文件(通常是静态文件)进行了优化。根据服务器的容量,您可能难以缓存超大文件,如高清视频、软件下载或大型数据集。
这在很大程度上取决于您使用的 CDN。如果边缘服务器难以传输大型媒体文件,您可能会发现更重要的网站文件被从缓存中删除,或者由于向数百个用户传输大型文件所涉及的高带宽和资源占用而导致性能不佳。
如果文件经常更新,您还会遇到缓存失效的问题,因为所有边缘服务器都需要清除和更新陈旧的版本。这可能是一个缓慢的过程,并导致用户遇到过时的内容。
相反,你可能想绕过边缘缓存,让用户从原始服务器下载,部分缓存文件内容,或者–对于视频流或类似需要 CDN 的网站 – 创建专门的 CDN 设置,优化大文件的传输。
安全和隐私问题
虽然边缘缓存可以提高网站性能,但它也会带来潜在的安全和隐私问题,尤其是在缓存经过验证、个性化或隐私的内容时。
在边缘缓存敏感信息会增加未经授权访问和数据泄露的风险。副本越多,被发现的可能性就越大。
缓存内容还可能引发 GDPR 等法律问题,因为 GDPR 要求您应要求删除所有存储的用户信息副本。
边缘服务器会增加网站及其数据的攻击面,并可能导致缓存中毒等安全漏洞。
这一切都可以通过加密所有通过缓存的隐私内容、添加缓存失效策略以清除过时和未使用的数据,或者首先不缓存敏感数据来缓解。
其他注意事项
最后,边缘缓存并不总是能很好地与一些特定设置配合使用。
除全国范围外,边缘缓存不能很好地与地理位置配合使用。基于州和城市的地理位置定位无法正常缓存,而靠近国家边界的区域可能会异常工作。
通过高级站点缓存添加的自定义排除项不起作用。
通过检测用户代理来为移动或桌面显示不同的网站无法使用边缘缓存。您可以使用 Kinsta 的移动缓存功能作为替代。
一些服务器的密码保护与边缘缓存不兼容。
服务器提供商提供的边缘缓存与 Cloudflare 的自动平台优化 (APO) 不兼容。
边缘缓存与 IP 和地理位置拦截不兼容。
无论您的网站基础设施如何,边缘缓存都可能与特定设置发生冲突。在设置 CDN 或启用边缘缓存后,最好对网站及其上的任何应用程序进行测试,以确保一切运行正常。
边缘缓存在 WordPress 中的工作原理
在 WordPress 环境中实施边缘缓存有其独特的考虑因素和挑战。
WordPress网站通常主要提供静态资产和动态内容,如小型服务器端脚本和数据库调用,是边缘缓存的理想选择。
然而,WordPress 的动态、不断更新的特性意味着内容有时会过时。要避免内容过时,就需要采用适当的清除机制,如 Cloudflare APO 和缓存失效。如果发现问题,您也可以手动清除边缘缓存。
WordPress 插件和主题可能会带来额外的复杂性。一些生成动态内容、添加个性化或验证内容或依赖服务器端处理的插件可能与边缘缓存不兼容。
一般来说,WordPress 和边缘缓存可以很好地协同工作以提高性能,但请记住这些注意事项,并确保广泛测试任何添加动态内容的插件或主题。
如何启用边缘缓存
既然您已经知道边缘缓存为何如此重要,那么让我们向您展示两种在网站上启用边缘缓存的方法。
如果您的服务器的边缘缓存已经利用了 Cloudflare 技术,就无需启用它。
Cloudflare 本身默认也提供边缘缓存,你可以使用旁路规则有选择地关闭它。但你也可以调整一些设置,比如边缘缓存 TTL(边缘服务器存储文件的时间)。
需要注意的是,如果你已经设置了缓存控制头,这可能是不必要的。此外,在更改任何缓存设置之前,最好咨询开发人员,除非您知道自己在做什么,因为这些设置可能非常敏感。
第 1 步:登录 Cloudflare 账户并访问控制面板。
第 2 步:单击 Rules > Page Rules,然后单击 Create Page Rule。
第 3 步:在 URL(必填)字段中输入要进行边缘缓存的页面。使用通配符 (*) 将此设置应用于多个页面。例如,”example.com/*” 将适用于网站上的所有页面。请注意,并非所有页面都适合缓存。
第 4 步:在 “Pick a Setting” 下拉菜单中,选择 “Edge Cache TTL“,并选择缓存在过期前应持续多长时间。
第 5 步:如果还想缓存动态资产,请单击 “Add a Setting“,添加 “Cache Level” 设置,并将其设置为 “Cache Everything“。
注意:“Cache Everything” 不应在需要登录的页面上使用。您可以新建一条规则,在敏感页面上将其设置为 “Bypass “。确保 “Bypass” 规则排序在 “Cache Everything” 规则之上。
您也可以在 Cloudflare 中设置缓存规则。
或者,您也可以使用缓存规则。
第 1 步:访问 Cloudflare 仪表板。
第 2 步:导航至 Caching > Cache Rules,然后单击蓝色的 “Create Rule” 按钮。
第 3 步:为规则命名,然后查看 “When incoming requests match… “,在 “Field” 下拉菜单中单击 URI Path,将 “Operator” 设为 “equals“,然后在 “Value” 框中输入”/“。这将使规则适用于所有页面,但同样,这可能并不合适。请根据您的基础架构进行调整。
第 4 步:将 Edge TTL 设置为适合网站的值。如果要手动设置,请单击Ignore cache-control header and use this TTL(忽略 cache-control 标头并使用此 TTL)。
第 5 步:完成后单击 “Deploy“。
在 Cloudflare 中设置输入超时 (TTL)。
小结
边缘缓存是一种功能强大的工具,可加快加载速度,创造更好的用户体验,并最终优化 WordPress 的性能。静态和动态资产都在边缘服务器上进行缓存,然后将它们提供给全球用户。
虽然边缘缓存存在一些挑战,但它通常能与 WordPress 相辅相成。正确配置缓存设置、与 Cloudflare 等 CDN 集成以及仔细管理缓存清除机制对于最大限度地提高 WordPress 性能至关重要。