很多教程写的都是WordPress启用WP Rocket后的设置方法,实际上WP Rocket有个搭配nginx的缓存方式,更快。
本教程引用自WP Rocket官方教程,https://github.com/SatelliteWP/rocket-nginx
Rocket-Nginx实现原理
Rocket-Nginx是WP Rocket插件的一个Nginx配置,它使Nginx能够直接访问先前缓存的文件,而无需调用WordPress或任何PHP程序。它还为CSS、JS 和媒体文件添加缓存标头,利用浏览器的缓存来减少对 Web 服务器的请求。
正因为通过Nginx直接调用缓存,不再通过PHP程序,所以原来的计划任务(自动清除到期缓存等)可能会不起作用。因为WP-Cron不是真正的 Cron 计划任务,只有在站点被访问时才会执行,基于这个情况,建议关闭 WP-Cron 而使用真正的 Cron 。
第一步、禁用 WordPress cron,请将以下代码添加到wp-config.php:
define( 'DISABLE_WP_CRON', true );
第二步、每 15 分钟手动执行一次 cron 计划任务(对于大多数网站来说应该足够了):
*/15 * * * * wget -q -O - https://你的网站名字/wp-cron.php?doing_wp_cron &>/dev/null
或者
*/15 * * * * curl https://你的域名/wp-cron.php?doing_wp_cron &>/dev/null
我们使用宝塔面板,可以直接在计划任务里添加即可
接下来我们配置Nginx
首先我们进入宝塔的nginx目录,默认为/www/server/nginx/conf
cd /www/server/nginx/conf
我们将官方的拉取下来
git clone https://github.com/satellitewp/rocket-nginx.git
如果你是国外的服务器,很容易拉取下来,很多人在这个地方拉取不下来,我们可以在前边加上github的cdn加速
下边是几个常见的github的CDN加速,这里不推荐使用压缩包解压的方式上传,因为该项目会持续更新
git clone https://gh-proxy.org/https://github.com/satellitewp/rocket-nginx.git
git clone https://hk.gh-proxy.org/https://github.com/satellitewp/rocket-nginx.git
git clone https://cdn.gh-proxy.org/https://github.com/satellitewp/rocket-nginx.git
git clone https://edgeone.gh-proxy.org/https://github.com/satellitewp/rocket-nginx.git
生成默认配置
cd rocket-nginx
cp rocket-nginx.ini.disabled rocket-nginx.ini
php rocket-parser.php
执行成功后,会在conf.d目录下生成default.conf文件,该文件为默认配置文件,如果要自定义某些配置,则需要编辑 rocket-nginx.ini 文件,然后重新执行php rocket-parser.php
例如:将CSS、JS、媒体文件的浏览器缓存时间由默认的30天改为365天,则需编辑rocket-nginx.ini文件如下:
css_expiration = "365d"
js_expiration = "365d"
media_expiration = "365d"
保存修改后执行(注意运行路径为 rocket-nginx 目录):
php rocket-parser.php
运行成功后,default.conf文件会被重新生成。
最后一步,将Rocket-Nginx 配置引入到Nginx的主机配置文件中,如下:
# Rocket-Nginx 配置
include rocket-nginx/conf.d/default.conf;
我们可以添加到伪静态中,也可以添加到域名的配置文件中
搞完,重启下nginx,看下有没有报错,然后去插件里清空下缓存,我们访问下网站的前台,看下是否有错误。


