前提是需要先获得
wp-rocket插件,该插件是收费插件,如果有能力请支持正版。
介绍
Rocket-Nginx是WordPress缓存插件WP-Rocket的Nginx配置。它不是 Nginx 模块,也不是 PHP 插件;是一套 Nginx 配置生成工具,配合 WordPress 的 WP‑Rocket 缓存插件使用,作用:Nginx 直接读取 WP‑Rocket 生成的静态缓存文件返回给浏览器,不走 PHP‑FPM 与 WordPress,大幅降低 CPU / 内存,提升页面响应速度。
使用
前置条件:
- WordPress网站,已安装并启用 WP‑Rocket 付费缓存插件;
- 服务器Nginx环境,服务器有PHP CLI(命令行PHP,用来生成nginx配置);
- SSH可登录服务器,有修改Nginx站点配置权限。
0. 禁止WP定时任务
为啥要禁止WP的定时任务?因为WP的定时任务是假的,必须要有访客触发访问WP程序,然后它才会判断是否要执行定时任务。所以为了确保缓存失效、预加载、以及我们自己的其他定时任务能正常运行,需要曲线救国一下。
禁止WP定时任务
在wp-config这个文件里添加一行代码,作用是为了禁止WP自带的CRON定时任务
define('DISABLE_WP_CRON', true);
添加新的定时任务
以下三种定时任务代码任一个就行,记得将website换成自己的网址:
*/15 * * * * wget -q -O - http://www.website.com/wp-cron.php?doing_wp_cron &>/dev/null
or
*/15 * * * * curl http://www.website.com/wp-cron.php?doing_wp_cron &>/dev/null
or
*/15 * * * * cd /home/user/public_html; php wp-cron.php &>/dev/null
宝塔可以直接配置这个命令:curl http://www.website.com/wp-cron.php?doing_wp_cron &>/dev/null ,完了定时任务的执行时间可以自行设置。
1.下载项目到服务器
# 克隆仓库,推荐放在网站外目录,例如 /opt
cd /opt
git clone https://github.com/SatelliteWP/rocket-nginx.git
cd rocket-nginx
如果服务器没有git,可以下载zip上传解压。
2.准备配置文件
#复制示例配置
cp rocket-nginx.ini.disabled rocket-nginx.ini
可选:编辑rocket‑nginx.ini修改参数:缓存过期时间、忽略的URL参数(fbclid、utm_*)、排除页面等。
nano rocket-nginx.ini
示例修改浏览器缓存时长:
css_expiration = "365d"
js_expiration = "365d"
media_expiration = "365d"
3.运行PHP脚本,生成Nginx配置
脚本读取ini,输出Nginx片段到conf.d/default.conf。
php rocket-parser.php
执行成功提示生成完成;报错检查服务器是否安装php-cli。
每次修改
rocket‑nginx.ini后,必须重新运行php rocket‑parser.php重新生成conf,修改才会生效。
4.引入生成的配置到你的Nginx站点配置
打开你的网站server {}块配置文件,加入include指令,路径填你实际的rocket‑nginx路径:
server {
# ......原有配置......
# Rocket‑Nginx缓存规则,放在server内部
include /opt/rocket-nginx/conf.d/default.conf;
# ......原有location、php‑fpm配置......
}
宝塔面板用户操作方式
网站设置 → 配置文件,添加这一行(路径替换为你服务器实际路径)
include /opt/rocket-nginx/conf.d/default.conf;
不要放到
location /{}里面,放在server层级。
5.校验Nginx配置,重载生效
nginx -t #校验配置,必须显示success,有报错要解决,不要强行重载
systemctl reload nginx
6.验证是否工作
- 先在WP‑Rocket后台清除全部缓存,访问网站,生成缓存文件;
- 浏览器打开页面,查看响应头:
- 成功:
X-Rocket-Nginx-Serving-Static: hit,Nginx直接返回缓存,不走PHP; X-Rocket-Nginx-Serving-Static: miss:未命中缓存(首次访问、已过期、被规则排除),会交给WordPress处理,访问第二次一般变成hit。
除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接
文章评论
我直接用静态博客,天然有速度优势。
@Sheep5 静态博客我之前也用过,但是感觉不是很方便,后来就一直用的WordPress
妙啊。不过能在国内支持收费插件的博主太少了,可能环境影响吧,我自己就一直很难接受收费的主题、插件等这类。有少数国人做的插件主题,就怕后期各种问题,收了钱就怕不认人,尤其在dz论坛程序这种插件里。老外做的这个,45美元只能一年,还只能单个站点,说实话,我瓦工CN2 GIA E的服务器,也就一年99美元,把这45美元加小鸡的配置上,感觉更好。可能是我终究还是收入太低,无法接受这种模式。
@fairy 老外习惯付费了,毕竟吃饭都给小费……
我前段时间做的typecho静态缓存插件也有nginx直读缓存方式,只需改伪静态规则就行了。
@不凡 typecho还是强大,WordPress就麻烦很多
@李锋镝 主要是wordpress插件丰富,需要什么功能插件,插件市场应有尽有,typecho是性能更好、更轻量,就是没有wordpress丰富的插件市场。
我个人更喜欢wordpress,后台操控比typecho更方便,又有丰富的插件市场,用typecho需要什么功能插件只能自己开发插件或者找人定制。
我这两天在做typecho文章打赏插件,你看我博客,有演示。