Nginx服务器使用WP Super Cache静态缓存插件教程

125次阅读
没有评论

共计 3440 个字符,预计需要花费 9 分钟才能阅读完成。

WP Super Cache 静态缓存插件应该可以说是最受欢迎的缓存插件,不过 WP Super Cache 缓存插件主要是针对 Apache 服务器而言,对于 Apache 服务器的站点安装启用插件后直接在后台进行设置就可以使用,但是对于 Nginx 服务器的站点选择 mod_rewrite 缓存模式就没有起作用,因为 Nginx 并没有 Apache 的 mod_rewrite 模块,想要使用还必须往配置文件加入一些规则以实现和 Apache 的 mod_rewrite 模块相同的功能才行。所以今天就将懿古今和 boke112 导航开启 WP Super Cache 静态缓存插件的全过程分享给大家。

Nginx服务器使用WP Super Cache静态缓存插件教程

PS:为什么要纠结于 mod_rewrite 缓存模式呢?这里引用知更鸟大神的话来回答大家:“如果选择非推荐的 mod_rewrite 缓存模式,缓存效果一般,个人感觉也就没必要使用这款缓存插件了。”

Nginx服务器使用WP Super Cache静态缓存插件详细步骤:

1、只要将以下代码中的 2~57 行添加到网站对应的 nginx location 中,保存好配置文件后记得重启 Nginx 服务器。

location / {
           # 如果请求的文件已存在,直接返回
           if (-f $request_filename) {
               break;
           }
           set $supercache_file '';
           set $supercache_uri $request_uri;
           set $supercache 1;
           set $ihttp_host '';

           if ($request_method = POST) {
               set $supercache 0;
           }

           # 仅在访问文章永久链接时使用静态文件,请求中带参数则不使用静态缓存
           set $qs 0;
           if ($query_string) {
               set $qs 1;
           }

           # 不过从 twitter, facebook, feedburner 链接点过来的,总是带参数,这些访问仍然可以使用静态文件
           if ($query_string ~* "^utm_source=([^&]+)&utm_medium([^&]+)&utm_campaign=([^&]+)(&utm_content=([^&]+))?$") {
               set $qs 0;
               set $supercache_uri $document_uri;
           }
           #deactivate on high load
           if ($qs = 1) {
               set $supercache 0;
           }
           # 针对已登录用户(发表过评论),可以不静态化。在访问量高峰时可注释掉
           if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
               set $supercache 0;
           }

           # 支持移动设备,访问移动版本的网页缓存
           if ($http_user_agent ~* '(iphone|ipod|aspen|incognito|webmate|android|dream|cupcake|froyo|blackberry9500|blackberry9520|blackberry9530|blackberry9550|blackberry 9800|webos|s8000|bada)') {
                set $ihttp_host '-mobile';
           }

           # 指定静态缓存文件的路径
           if ($supercache = 0) {
                set $supercache_uri '';
           }
           if ($supercache_uri ~ ^(.+)$) {
               set $supercache_file /wp-content/cache/supercache/$http_host$1/index${ihttp_host}.html;
           }

           # 只有当缓存文件存在时,才进行 rewrite
           if (-f $document_root$supercache_file) {
               #rewrite ^(.*)$ $supercache_file break;
               rewrite ^ $supercache_file last;
           }

           # 所有其他请求,转给 wordpress 处理
           if (!-e $request_filename) {
               rewrite . /index.php last;
           }

其中代码中已经有很详细的注释了,这里就不再多做解释,我直接复制粘贴使用,没有修改。

2、WordPress 后台安装并启用 WP Super Cache,具体安装过程就不再啰嗦了,请自行安装。

3、进入到 WP Super Cache 插件的“高级”选项,进行以下操作,并点击【更新】和【更新 Mod_Rewrite 规则】:

  • 勾选“启用缓存以便加快访问。(推荐)”

  • 选择“mod_rewrite 缓存模式。”

  • 勾选“缓存重建。当新缓存生成时调用缓存文件给匿名用户。(推荐)”

  • 勾选 “首页额外检查。(极少数情况下会停止对首页的缓存)(推荐)”

  • 勾选“当某页面有新评论时,只刷新该页面的缓存。”

Nginx服务器使用WP Super Cache静态缓存插件教程

4、到期时间和垃圾回收期的设置,其中缓存超时时间设为 0 秒,计划选择时间,并设置为 00:00 小时:分钟,然后点击【修改过期设置】。

Nginx服务器使用WP Super Cache静态缓存插件教程

PS:步骤 3 和 4 的设置是知更鸟大神分享其站点的设置内容(具体可见:知更鸟站点配置图),所以这次懿古今配置也根据这样的内容来设置。

5、WP Super Cache 插件的其他设置都不用理会,直接默认即可。接着我们设置 WP-PostViews 插件的“Use AJAX To Update Views:”为“Yes”即可。

至此,已经全部完成 Nginx 服务器使用 WP Super Cache 静态缓存插件的所有配置,理论上 WP Super Cache 插件已经能够正常使用了,虽然 WP Super Cache 插件选项设置中还会显示如下错误:

Mod rewrite 模块可能未安装!

貌似 mod_rewrite 模块尚未安装。也许情况并不是这样,尤其是当您不使用 Apache 作为服务器程序的时候。请检查 mod_rewrite 模块是否被加载。这对于 Super Cache 的静态文件的调用是必需的。不过您可以使用 PHP 缓存模式或者传统模式运行本插件。

其实,要知道 WP Super Cache 插件是否已经正常使用,我们只需要用匿名用户访问我们的站点首页源代码(360 浏览器的无痕模式打开我们站点的首页),如果看到有如下图所示的就表示已经正常使用了。

Nginx服务器使用WP Super Cache静态缓存插件教程

WP Super Cache插件是否会影响计数?

其实文中第五步已经设置了 WP-PostViews 插件在开启缓存的情况下是可以正常计数的,只不过是在后台统计,而未能实时显示浏览数而已。对于这种问题我们可以看看知更鸟大神对这个问题的答复:

Nginx服务器使用WP Super Cache静态缓存插件教程

对于这个未能实时显示浏览数的问题,我就懒得去折腾了,毕竟我也不可能每时每刻去盯着这个浏览数的变化。对于想实时显示浏览数,除了求助度娘自己折腾外,最好的办法应该就是不用缓存插件改用 CDN 加速。

正文完
 
admin
版权声明:本站原创文章,由 admin 2019-03-06发表,共计3440字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码