如何使用rocket-nginx结合wp rocket进一步提速?
单纯用rocket插件其实还是会在高并发场景下受到影响,因为会走php响应缓存文件,本身缓存文件是静态的,没必要用php转发,用nginx会好得多,毕竟nginx在静态服务器上一直是老大哥嘛,性能好消耗少
禁用wp定时任务
因为不走php,定时任务需要交给linux来做:
在wp-config这个文件里添加一行代码
define('DISABLE_WP_CRON', true);
在crontab里加入(wget工具要自己安装:yum install wget或apt install wget)(crontab教程:https://www.runoob.com/linux/linux-comm-crontab.html):
# 以下http://www.website.com换成自己网站,每15分钟手动执行一次cron作业(对于大多数网站来说应该足够了):
*/15 * * * * wget -q -O - http://www.website.com/wp-cron.php?doing_wp_cron &>/dev/null
安装rocket-nginx
在SSH里面进入到nginx的目录并拉代码,git工具自行提前安装
# 此处目录不一定是这个,看看自己的nginx装在哪
cd /etc/nginx
git clone https://github.com/satellitewp/rocket-nginx.git
从2.0版本开始,必须生成配置。要生成默认配置,必须重命名禁用的ini文件,并运行配置解析器。
cd rocket-nginx
cp rocket-nginx.ini.disabled rocket-nginx.ini
php rocket-parser.php
这将生成.conf路径,里面有default.conf是配置,可以用于所有网站。如果你需要改变默认配置,你可以编辑ini文件,在文件的底部添加另一个部分。
配置
然后,在你的Nginx配置文件中,你必须包含刚刚生成的配置,在你的nginx配置里的server块中添加(此处路径对应自己生成的default.conf的路径):
server {
...
# Rocket-Nginx configuration
include /etc/nginx/rocket-nginx/conf.d/default.conf;
...
}
在重新加载配置之前,确保对其进行测试:nginx -t
一旦你的测试完成,你必须重新加载你的配置。 service nginx reload
一旦你编辑了ini文件,你必须通过运行解析器重新生成你的Nginx配置文件:php rocket-parser.php
每次生成(或重新生成)配置文件时,你都必须:
1、测试它,以确保它没有产生任何错误:nginx -t
2、重新加载配置:service nginx reload
从3.0版本开始,会创建一个conf.d目录。对于你创建的每个不同的配置文件,都会在该文件夹中创建一个子文件夹。在这个文件夹中,你可以创建一些文件,这些文件将被包含在生成的配置文件中。
你可以在自定义在不同的时间包含配置文件:
你可以在不同的时间、行为包含配置文件:
在Rocket-Nginx启动之前:
在默认配置文件中,在conf.d/default/创建一个文件,文件名模式如下:start..conf。
在全球范围内,在每个部分:
在默认配置中,在conf.d/default/中创建一个文件,文件名模式如下:global..conf。
在HTTP部分:
在默认配置中,在conf.d/default/中创建一个文件,文件名模式如下:http..conf。
在CSS部分:
在默认配置文件中,在conf.d/default/中创建一个文件,其文件名模式如下:css..conf。
在JS部分:
在默认配置文件中,在conf.d/default/中创建一个文件,其文件名模式如下:js..conf。
在媒体部分:
在默认配置文件中,在conf.d/default/中创建一个文件,其文件名模式如下:media..conf。
调试
怎么测试是否缓存没走php而走nginx呢?
要做到这一点,打开rocket-nginx.ini文件,将debug值
debug = false
改为
debug = true
无论debug设置为true还是false,都会出现以下头信息:
X-Rocket-Nginx-Serving-Static。配置是否直接提供了缓存文件:HIT, MISS, BYPASS。这将在你的响应请求中添加以下头信息。
X-Rocket-Nginx-Reason:如果服务静态没有设置为 "HIT",调用WordPress的原因是什么。如果是 "HIT",使用的文件是什么(URL)。
X-Rocket-Nginx-File:如果 "HIT",使用的文件是什么(磁盘上的路径)。
不提供缓存文件的原因
后期请求。对网络服务器的请求是一个POST。这意味着发送了数据,答案可能需要与缓存的文件不同(例如,当发送评论时)。
发现参数。在请求中发现一个或多个参数(例如:?page=2)。
维护模式。发现了.维护文件。因此,让WordPress处理应该显示的内容。
Cookie。发现了一个特定的cookie,并告诉不要提供缓存的页面(例如,用户已经登录,用密码发布)。
激活了特定的移动缓存。如果你在WP-Rocket中激活了特定的缓存(一个用于移动设备,一个用于桌面设备),HTML文件(页面、文章...)将不会被直接提供,因为Rocket-Nginx无法知道请求是由移动设备还是桌面设备发出的。
文件没有被缓存。没有发现该请求的缓存文件。
最新版本及问题解答
如何从版本1或2升级到版本3?
我们建议你保存你以前的配置并重新开始。借此机会回顾一下所有的东西,因为很多东西已经改变了。从官方角度讲,3.x版本与以前的版本不具备后向兼容性。从头开始的做应该不会超过15分钟。
3.x版有什么新内容?
很多东西!
通过ini文件支持缓存的查询字符串。请参阅WP Rocket Cache查询字符串的配置文档。
支持忽略的查询字符串。配置请见WP Rocket Cache查询字符串忽略文档。
删除了默认的HSTS值。
自定义配置可以包含在每个部分
支持CSS、JS和medias的自定义过期。
删除了允许从配置文件中添加头文件的功能。
如果我的网站使用SSL证书(https),Rocket-Nginx能工作吗?
是的! Rocket-Nginx将检测请求是通过HTTP还是HTTPS发出的,并根据请求类型提供正确的文件。从1.0版本开始,这两种协议都是自动处理的。