如何用Cloudflare解决WP-Cron不工作的问题?

自学咖网努力为各位打造免费分享知识与教程网站

WordPress需要一些基本要求,比如MySQL和正确的PHP版本,才能正常运行。此外,您需要额外的设置来使安装的插件和主题正常工作。

WP-Cron是WordPress网站在仪表板中获取更新和报告的需求之一。另一方面,Cloudflare是许多托管公司内置的受欢迎的免费CDN服务。

不幸的是,如果您没有正确配置Cloudflare,它可能会停止WP-Cron作业的运行,并导致不良问题。如果遇到困难,下面是你可以尝试通过Cloudflare CDN设置,修复WP-Cron无法正常工作的问题。

关于WP-Cron的更多信息

Cron是Unix中使用的一个命令,用于调度作业在后台完成任务。在WordPress的世界里,WP-Cron类似于Unix cron job,用于定期调度任务。与可以在特定时间调度的系统cron作业不同,WP-Cron在每次页面加载时运行并触发调度的任务。这里有一些例子让你知道WP-Cron的作用:

更新WordPress仪表盘小工具,比如实时销售小工具。

检查处于预定状态的文章,并按计划发布。

插件可以在后台运行数据库更新、缓存清理和其他任务。

你也可以从官方的WordPress页面阅读更多关于WP-Cron的细节。

寻找WP Cron问题

当WP-Cron出现问题时,会直接影响调度任务的运行。您可以在服务器的仪表板和错误日志中看到一些失败通知。下面是WP Rocket插件的一个例子,它使用WP-Cron运行一个预定的缓存清除。如果你不清除缓存,它会降低你的网站速度,因为有很多过时的缓存内容。

自学咖网努力为各位打造免费分享知识与教程网站

WP火箭Cron作业问题

您还可以使用WP Crontrol之类的插件来监控和查找您的站点中与cron相关的问题。一旦你发现WP-Cron有问题,你应该在这个网站上检查你最近的活动。如果您已经启用了Cloudflare或更改了CDN中的任何设置,那么这是开始故障排除的第一步。

检查Cloudflare中的WP Cron问题

Cloudflare的安全设置可以让你屏蔽恶意机器人。不幸的是,这也可以防止像WP-Cron这样的自动化活动被误报。好的地方在于,你可以根据日志中的IP地址和查询字符串很容易地找到它。由于WP-Cron将从您的托管服务器的IP地址运行,您可以根据您的服务器的IP地址检查被阻止的条目,以找到更多详细信息。

如果不知道服务器的IP地址,可以从主机面板找到。或者,您可以转到Cloudflare帐户的DNS部分,找到带有@的A记录,该记录将指向您的服务器的IP地址。

之后,转到“安全>概述”部分,并单击“添加过滤器”按钮。

根据与服务器IP相同的IP地址过滤日志。

在这里,您应该会发现“路径”部分写着“/wp-cron.php”,如下图所示。

您还可以找到其他详细信息,例如阻止的原因,在我们的例子中是“管理定义的机器人”。

自学咖网努力为各位打造免费分享知识与教程网站

找到服务器IP的安全细节

如果您想了解更多详细信息,请向下滚动页面并查看活动日志部分。在这里,您可以找到为了解WP-Cron由于主机规则设置和主机挑战而被阻止所采取的服务和操作。这取决于您的安全设置,您可能在其中选择了一些有管理的质询选项。

自学咖网努力为各位打造免费分享知识与教程网站

检查服务器IP的活动日志。

单击“编辑列”按钮添加可以显示更多详细信息的其他列。由于IP地址已经存在,请选择“路径”和“查询字符串”复选框。

自学咖网努力为各位打造免费分享知识与教程网站

选择路径和查询字符串。

这将添加额外的列,并显示路径和查询字符串。在下面的截图中可以看到,路径会显示为/wp-cron.php,查询字符串会显示类似?doing_wp_cron的内容。

自学咖网努力为各位打造免费分享知识与教程网站

查找路径和查询字符串详细信息

相关文章:

WP Rocket——如何使用WP Rocket插件正确设置Cloudflare?

W3总缓存–如何使用W3TC插件正确设置Cloudflare?

使用Cloudflare修复WP-Cron问题

现在很明显,Cloudflare安全设置将阻止WP-Cron在您自己的托管服务器上运行。尝试以下选项来解决问题。你可能需要检查你的WordPress仪表盘,使用插件或者检查服务器的日志,如上所述,来确认WP-Cron是否正常工作。

1.禁用完全自动化的机器人。

免费的Cloudflare账号有一个简单的“机器人战斗模式”来阻止自动机器人。你可以进入“安全>僵尸工具”部分,关闭这个选项,检查WP-Cron是否在你的网站上运行。

自学咖网努力为各位打造免费分享知识与教程网站

在您的免费Cloudflare帐户中禁用机器人战斗模式

如果您使用高级Cloudflare计划,请单击“安全>机器人”部分中的“配置超级机器人战斗模式”链接。

自学咖网努力为各位打造免费分享知识与教程网站

在Cloudflare中配置超级机器人战斗模式

在这里,您可以看到“绝对自动化”机器人被“管理挑战”选项阻止。如上所述,您可以在活动日志中看到这是“绝对自动”的。由于WP-Cron肯定是后台自动化的,所以Cloudflare会阻塞,会带来麻烦。点击下拉菜单,选择“允许”,Cloudflare会自动保存您的设置。

自学咖网努力为各位打造免费分享知识与教程网站

允许绝对自动化的机器人

大多数情况下,这样会解决Cloudflare的WP-Cron不行的问题。

2.禁用WAF下的托管规则

如果允许机器人不能解决问题,那么下一个选择就是禁用Cloudflare自动设置的托管规则。根据您使用的平台,Cloudflare将自动启用一些Web应用程序防火墙(WAF)规则来保护您的站点。您可以转到“安全> WAF”部分,并在“管理的规则”部分下找到为您的站点启用的规则。只需禁用托管规则选项即可将其关闭。

自学咖网努力为各位打造免费分享知识与教程网站

在Cloudflare中禁用受管WAF规则

或者,转到页面,仅禁用Cloudflare WordPress规则集。

自学咖网努力为各位打造免费分享知识与教程网站

禁用Cloudflare WordPress规则集

现在,检查您的WP-Cron是否在没有来自Cloudflare的WAF规则的情况下运行。

3.在IP访问规则中将您的服务器列入白名单

禁用WAF规则集是有风险的,这可能会违背Cloudflare安全性的目的。虽然可以使用Wordfence、AIOWPS等插件来添加防火墙,但最好的选择是在Cloudflare WAF设置中允许网站的服务器IP。当您位于Cloudflare帐户的WAF部分时,请转到“工具”选项卡。输入您的服务器IP,选择允许和此网站选项,然后单击“添加”按钮。这将添加一个异常,并避免阻塞您自己的服务器的活动,比如WP-Cron作业。

自学咖网努力为各位打造免费分享知识与教程网站

添加IP例外以绕过Cloudflare防火墙。

总结

Cloudflare是一种流行的CDN和安全服务。然而,它不能识别WordPress站点需要的另一个流行的WP-Cron工作。这是可以理解的,因为插件可以出于不同的原因运行WP-Cron,并导致您的站点出现安全问题。

不幸的是,即使在服务器上手动调度cron作业也不能解决问题,因为插件开发者可能会使用默认的WP-Cron作业。解决方案是禁用机器人保护或排除服务器的IP地址,这将允许WP-Cron作业运行。

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 如何用Cloudflare解决WP-Cron不工作的问题?