云烟成雨41天前更新关注私信 Cloudflare是一家提供功能强大的免费CDN服务的供应商。许多使用Cloudflare的WordPress网站管理员期望他们的网站能够更快速地加载。然而,将网站的全部内容(HIT)缓存到Cloudflare中可能导致WordPress的登录和评**能出现错误,例如前端页面不更新或者缓存其他用户的登录信息。因此,大多数WordPress网站只选择缓存JavaScript、CSS和图片等静态文件。 熟悉Cloudflare的用户应该明白,要想根据cookie绕过缓存,就需要购买Cloudflare的付费套餐。然而,一些细心的网站管理员可能已经发现,Cloudflare支持“使用WordPress/WooCommerce缓存静态HTML”的功能,但该功能只适用于Cloudflare Business和Enterprise计划的用户,免费用户无法享受此功能。 所有Cloudflare计划的用户都有能力配置HTML文件的缓存。然而,只有Business和Enterprise计划的用户可以在发送具有请求的Cookie时绕过HTML缓存。 这一功能实现了以下目标 未登录的访客(没有登录的Cookie)在访问网站时直接从CDN获取完全缓存的网页(HIT),无需请求源服务器,从而提升网站的速度并减轻服务器的负载。 已登录的用户(具有登录的Cookie)或者已发送评论的用户将通过CDN请求源服务器,并获得动态内容(DYNAMIC),确保前端页面实时更新。 同时,这两个功能的缓存是相互隔离的,未登录的访客无法看到已登录用户的前台信息。 鉴于大多数网站(包括但不限于WordPress)都是通过设置Cookies来实现用户登录和评论等功能,我们可以让Cloudflare通过检测Cookies自动判断用户的登录状态和评论情况,从而决定是否请求源服务器。这不仅提升了访客的体验,也减轻了服务器的负担。 下面以WordPress为例,说明如何免费实现这一功能。 配置流程 注意:为了方便配置,所有规则都提供相应的表达式,您可以将表达式粘贴到表达式输入框中,然后再切换回可视化编辑器进行编辑。请务必将“您的域名”替换为您自己的域名。 1.观察 Cookies 特征 通过阅读 Cloudflare 官方给出的文档,我们可以发现以下规律: WordPress(原生) wp-.*|wordpress.*|comment_.* 具有 WooCommerce 的 WordPress wp-.*|wordpress.*|comment_.*|woocommerce_.* 2.打开配置页面 打开Cloudflare 配置页面,依次点击要配置的域名-缓存-Cache Rules。 3.创建第一个缓存规则 按照下图创建缓存规则,选择“绕过缓存”,并把这个规则放在本流程的顶端。 这个规则的目的是防止 Cloudflare 缓存管理后台、前台用户中心、搜索界面和预览界面,以免缓存他人信息。 (http.request.full_uri eq "https://您的域名/wp-admin/*") or (http.request.full_uri eq "https://您的域名/*preview=true*") or (http.request.full_uri eq "https://您的域名/前台用户中心/*") or (http.request.full_uri eq "https://您的域名/?s=*") 4.创建第二个缓存规则 按照下图创建缓存规则,选择“绕过缓存”,并把这个规则放在本流程的第二个。 这个规则的目的是实现已登录的用户(具有登录 Cookies)或者发送了评论的用户 CDN 请求回源并提供动态内容(DYNAMIC),确保前端实时更新。 (starts_with(http.request.full_uri, "https://您的域名/") and http.cookie contains "wordpress_sec_") or (starts_with(http.request.full_uri, "https://您的域名/") and http.cookie contains "wordpress_logged_in") or (starts_with(http.request.full_uri, "https://您的域名/") and http.cookie contains "comment_") 5.创建第三个缓存规则 按照下图创建缓存规则,并把这个规则放在本流程的底部。 这个规则的目的实现是未登录的访客(没有登录 Cookies)访问站点时直接提供 CDN 完全缓存网站页面(HIT),无需回源。 (starts_with(http.request.full_uri, "https://你的域名/") and not http.cookie contains "wordpress_sec_" and not http.cookie contains "wordpress_logged_in" and not http.cookie contains "comment_") 6.检查缓存规则顺序 请确保 3 个规则按照上述顺序排序,可以拖动或点击箭头对规则重新排序 7.验证规则生效情况 可在浏览器的 InPrivate 标签页中按 F12 打开开发者工具,在网络一栏中查看对应网址的“cf-cache-status”。正常情况下,您将看到以下内容,这表示配置成功: 未登录:cf-cache-status:HIT 登录后:cf-cache-status:DYNAMIC 如果有问题,请检查“页面规则”等中是否有项目与其冲突。 完成此配置后,您可以自行检查并完善其它配置,此处不再赘述。 希望这个教程可以帮助有需要的站长;同时也希望 Cloudflare 可以继续提供优秀的加速服务,开发更多先进的功能! 温馨提示:本文最后更新于2024-06-16 11:47:10,某些文章具有时效性,若有错误或已失效,请私信客服或联系站长QQ。------本文内容已结束,喜欢请分享------ 感谢您的访问,Ctrl+D收藏本站吧。 © 版权声明 相关声明 1、本站名称:个人笔记 2、本站永久网址:https://www.8uid.com 3、本站部分内容源于网络和用户投稿,仅供学习与研究使用,请下载后于24小时内彻底删除所有相关信息,如有侵权,请联系站长进行删除处理。 4、用户评论和发布内容,并不代表本站赞同其观点和对其真实性负责。 5、本站禁止以任何方式发布或转载任何违法的相关信息。 6、资源大多存储在云盘,如发现链接失效,请联系我们替换更新。 7、本站中广告与用户付费(赞助)等均用以网站日常开销,为非盈利性质的站点,不参与商业行为,纯属个人兴趣爱好。 一月 30 知岛上的今时往日 "吼吼~,往年的今天,作者不知道跑哪里偷懒去了~" THE END圈内闲谈# WordPress# 缓存# Cloudflare# Cookies# 缓存配置# Cloudflare教程 点赞29投币 分享QQ空间微博QQ好友海报分享复制链接收藏