本文龙笑天将详细为大家介绍 WordPress 的计划任务 WP-Cron,什么是 WP-Cron,它是干什么的有什么作用,为什么我的 wp-cron.php 文件被人疯狂访问导致服务器 CPU 占用爆了,怎么防护这种 wp-cron 拒绝服务攻击?
1.WP-Cron 的机制简介
WP-Cron 是 WordPress 内置的任务调度系统,主要用于定时执行各种计划任务,例如发布定时文章、检查插件更新、执行数据备份等。很多高级主题会用它来执行一些功能需要的定时任务,比如本站使用的Dragon 主题,就用它来检查会员过期及续订,定时邮件发送等任务;也有很多插件会使用到它,例如 WP Super Cache、WP rocekt 等插件的预缓存等功能就是用的它来实现的。
然而,由于 WordPress 运行在 PHP 之上,而 PHP 本身并不具备真正的后台任务管理能力,因此 WP-Cron 的工作方式并不像 Linux 系统的 cron 任务那样独立运行。
WP-Cron 的执行逻辑如下:
- 每当用户访问网站任何页面时,WordPress 就会自动请求一次 /wp-cron.php。
- 该文件会检查是否有需要执行的任务,并在符合条件时执行任务。
2.WP-Cron 存在的问题
从上面 WP-Cron 的这个执行逻辑,我们可以看出它是个伪定时任务,是靠访问来被动触发执行的。看到这里,很多盆友应该已经发现其存在的问题了,主要有下面 2 点:
- 对于访问量较小的网站,可能就会出现定时任务经常不执行,或延迟很久才会执行。
- 对于访问量较大的网站,那就问题严重了。每次前台访问都会触发 WordPress 额外请求 /wp-cron.php,相当于请求量直接翻倍,给服务器带来额外的负担。另外,有些盆友会发现有时候访问网页时会卡顿很久才打开,这很大可能就是您的此次访问触发了 WP 某些任务的执行。而有些任务就可能耗时很久才执行完毕,比如发邮件等动作。
而很多坏人就利用了其中的第 2 点,疯狂的用脚本访问我们 WordPress 网站的 https://您的域名/wp-cron.php 这个链接,导致我们服务器 CPU 报表网站卡爆了。
3.如何优化 WP-Cron
那么,怎么解决掉上面这 2 个问题,实现真正的定时任务优化性能呢?特别是防止坏人利用第 2 点攻击我们的网站?接下来,大家可以跟随龙笑天的脚步一步步操作,就可以彻底解决掉 WP-Cron 的这些痛点。
4.优化效果
通过上述优化措施,我们的 WP-Cron 任务调度方式变得更加高效,带来的好处包括:
- ✅ 减少额外的服务器请求,降低 CPU 负载,提高响应速度。
- ✅ 避免流量高峰期任务重复执行,提高任务调度的稳定性。
- ✅ 定时任务执行更可控,避免 WordPress 由于长时间无人访问而错过计划任务。
- ✅ 完全杜绝了您网站的 wp-cron.php 被人利用攻击的漏洞。
如果您的网站流量较大或运行在高并发环境下,这种优化方式可以显著提高 WordPress 的运行效率。
5.总结
WordPress 的 WP-Cron 机制虽然方便,但由于 PHP 的特性,它并不是真正的后台任务调度器,在高流量网站上可能会带来额外的性能开销。通过禁用默认的 WP-Cron 触发方式,并使用服务器定时任务手动调用 /wp-cron.php,我们可以有效降低服务器负担,使 WordPress 运行更加稳定和高效。
6.相关参考
WP-Cron 优化指南:提升 WordPress 性能,减少服务器负担 - 汇 Ui
优化 WordPress 计划任务(WP-Cron),确保如期运行 - 站长帮
WordPress 优化 – 使用 Crontab 取代 WP-Cron - 无名博客
声明:本文为原创文章,版权归龙笑天下所有,欢迎分享本文,转载请保留出处!







