很多小伙伴都知道WP Rocket这款强大的WordPress速度优化插件,虾皮路也一直在用着,WP Rocket的功能非常强大,可以优化站点的CSS代码,延迟图像加载,延迟加载javascipt,缩…

很多小伙伴都知道WP Rocket这款强大的WordPress速度优化插件,it168资讯也一直在用着,WP Rocket的功能非常强大,可以优化站点的CSS代码,延迟图像加载,延迟加载javascipt,缩小html代码体积等等,最近it168资讯网上看文章的时候发现,可以安装Rocket Nginx让WP Rocket实现Nginx的纯静态加速,也就是让网站访问更快。it168资讯心里按耐不住又折腾一下,接下来分享一下设置教程。
没有安装WP Rocket?点击这里:WP Rocket 3.6.2.1汉化破解版|WordPress最强缓存加速插件
一、优化原理
一般安装WP Rocket后都会生成一个advanced-cache.php文件。虽然对网站进行了缓存,但是一般的缓存读取路径是这样的:NGINX→PHP-FPM→PHP→静态文件,通过安装Rocket Nginx,让缓存读取路径为:NGINX→静态文件,直接跳过了中间php执行的过程,从而达到加速的效果。
二、关闭WordPress的cron定时任务
WordPress有个定时的cron计划任务设置,每次只有访问了才会执行定时任务,而不是按时间自动执行,这块比较鸡肋,由于配置的目标是直接提供缓存的文件而不必从WordPress执行任何PHP,因此我们需要关闭Wordpress的cron定时任务。
1、首先打开站点根目录下的wp-config.php文件,在最后面添加如下代码:
define('DISABLE_WP_CRON', true);
然后保存。
2、我们设置定时任务每15分钟执行一次,支持get、curl、php等几种方式触发任务
登陆站点的SSH,执行如下命令
*/15 * * * * wget -q -O - https://shopee6.flxzz.com/wp-cron.php?doing_wp_cron &>/dev/null
及
*/15 * * * * curl https://shopee6.flxzz.com/wp-cron.php?doing_wp_cron &>/dev/null
以上大部分网址基本执行第一条命令就行了。以上自行将代码中的域名改为自己的域名。
三、编译安装Rocket Nginx
首先用SSH登陆进入站点的Nginx目录,这里it168资讯以BT宝塔站点安装的Nginx为例。
cd /www/server/nginx/conf
然后克隆Rocket Nginx库
git clone https://github.com/satellitewp/rocket-nginx.git
然后生成默认配置,必须重命名禁用的ini文件并运行配置解析器
cd rocket-nginx
cp rocket-nginx.ini.disabled rocket-nginx.ini
php rocket-parser.php
然后在rocket-nginx文件夹中就生成了一个默认的default.conf文件。
记住这个default.conf文件的默认地址,这里以BT宝塔的文件夹为例,如下

default.conf文件地址为:www/server/nginx/conf/rocket-nginx/default.conf;
然后打开网站的配置文件,加入如下代码:
# Rocket-Nginx configuration
include /www/server/nginx/conf/rocket-nginx/default.conf;
如图所示

在SSH里测试Nginx是否正常工作,以免配置错误造成Nginx瘫痪,用如下代码测试
nginx -t
如果没有报错,则重启Nginx服务
service nginx reload
全部过程的代码很简单,操作的过程大概如下:

四、检测Rocket Nginx配置是否生效
打开rocket-nginx文件夹下的rocket-nginx.ini文件,将其中的debug = false改为debug = true,如图所示

当然,里面还有一些设置可以进行配置,比如缓存的文件类型等等,一般是默认设置。
注意:每次修改设置rocket-nginx.ini文件,都需要重新运行解析器来重新生成Nginx配置文件。也就是用SSH登陆后,到达相应的文件夹运行代码
php rocket-parser.php
测试它以确保它没有产生任何错误:
nginx -t
重新加载配置:
service nginx reload
将网站的缓存清理掉,重新打开自己的站点测试一下,然后用谷歌浏览器看网页的标头
显示:X-Rocket-Nginx-Serving-Static:yes的话,那说明设置成功。
如果显示:X-Rocket-Nginx-Serving-Static:no,说明不成功。
五、可能出现的问题
无论debug设置为0还是1,都会显示以下标头:
- X-Rocket-Nginx-Serving-Static:配置是否直接提供了缓存文件(是否绕过WordPress):是或否。
这会将以下标头添加到您的响应请求中:
- X-Rocket-Nginx-Reason:如果“旁路”设置为“否”,则调用WordPress的原因是什么。如果为“是”,则使用什么文件(URL)。
- X-Rocket-Nginx-File:如果为“是”,则使用什么文件(磁盘上的路径)。
不提供缓存文件的原因:
- 发布请求:对Web服务器的请求是POST。这意味着已发送数据,并且答案可能需要与缓存的文件不同(例如,发送评论时)。
- 找到参数:在请求中找到一个或多个参数(例如?page = 2)。
- 维护模式:找到.maintenance文件。因此,让WordPress处理应显示的内容。
- Cookie:找到了特定的Cookie,并告知其不提供缓存的页面(例如,用户已登录,使用密码发布)。
- 激活了特定的移动缓存:如果您在WP-Rocket中激活了特定的缓存(一个用于移动,一个用于桌面),则HTML文件(页面,帖子等)将不会直接提供,因为Rocket-Nginx无法知道请求由移动或台式设备制作。
- 未缓存文件:找不到该请求的缓存文件。
六、效果对比
安装Rocket Nginx让WP Rocket实现Nginx的纯静态加速到底有没有效果呢?这里it168资讯进行了初步测试,以it168资讯首页为例。
未安装Rocket Nginx的情况下加载网页

安装Rocket Nginx的情况下加载网页

总的来说速度变化提升不明显,有可能有一定的误差。这点见仁见智吧。总的来说,有兴趣的话可以安装来测试一下,或者it168资讯哪里设置有问题的,也可以告诉it168资讯。
原创文章,作者:admin,如若转载,请注明出处:https://www.it168.online/webtech/1226/