在使用Nginx+WP Fastest Cache时,虽然页面做了缓存,但并不是真正的缓存,请求仍然需要通过PHP解析器来处理,最简单的验证方法时把网站目录的index.php修改个名字,网站就挂掉了。
网上有很多Wp Super Cache配置Nginx的例子,但是没有找到Wp Fastest Cache配置的例子,下面的配置可以使你的WP Fastest Cache达到真正的完全静态,(甚至PHP进程挂掉,网站依旧能正常运行)
location / {
# 如果请求的文件已存在,直接返回
if (-f $request_filename) {
break;
}
set $caches 1; #是否缓存
set $request_file $document_uri; #获取请求文件
set $cache_file ''; #缓存文件
#请求方式是POST的不拦截
if ($request_method = POST) {
set $caches 0;
}
#包含GET请求参数的不拦截(访问量高可以注释掉)
if ($query_string) {
set $caches 0;
}
# 指定静态缓存文件的路径
if ($caches = 0) {
set $request_file '';
}
if ($request_file ~ ^(.+)$) {
set $cache_file /wp-content/cache/all/\/index.html; #你的WP Fastest Cache缓存目录
}
# 命中缓存
if (-f $document_root$cache_file) {
rewrite ^ $cache_file last;
}
# 无法命中缓存,转给WordPress来处理
if (!-e $request_filename) {
rewrite . /index.php last;
}
}
接着看看,你的网站打开速度是不是快了好多好多。
如果想在header中检测是否生效了,就添加下面的代码:
location /wp-content/cache/all/ { #这一行是你的WP Fastest Cache缓存文件路径
add_header Cache HIT; #添加header头,表示命中了缓存
}
评论抢沙发