mod_rewrite缓存模式WP Super Cache最快的加速模式

本插件提供3种缓存模式(按速度从高到低排序):

1.Mod_Rewrite的模式。
使用Apache的mod_rewrite模块(或者你的web服务器支持的其他类似模块)生成静态的html文件是最快的一种缓存模式。这种模式完全绕开PHP的执行而且非常快。如果你的服务器正承受非常大的流量,这种模式很可能会帮助你降低用户访问所耗用的系统资源。这种模式必须依赖于Apache的mod_rewrite模块(如果你的服务器启用了固定链接,这个模块很可能已经被安装),并且还需要修改服务器上的.htaccess的文件。网站的匿名访问者(或未登录的注册用户)可以使用这种模式。

2.PHP. PHP现在也支持生成超级缓存静态文件。
本插件可以生成一个超级缓存文件,并且这种模式的速度与Mod_Rewrite模式一样快。这种模式更容易配置,并且不需要修改.htaccess文件。你仍然需要一个固定的链接。在这种缓存模式下,你可以让你的页面的某些部分保持动态。你的web服务器不会受到巨大流量的困扰。(你把赌注压在digg上吗?你需要的是Mod_Rewrite,我们非常享受PHP带来的好处。)

3.传统缓存模式。
这种模式主要针对已知的用户,也就是已经登录的用户,留下了评论的用户和可以访问特定数据的用户。这是一种最灵活的缓存方法,同时也是最慢的。由于每一个页面都是不同的,通常最好不要对这些用户进行页面的缓存以避免传统缓存模式的应用。传统缓存模式同样也可以对未知的用户起作用。在这种模式下,你同样也可以保持你的页面的某些部分为动态的。

如果你是一个缓存应用的新手,那么请应用PHP缓存,这种模式非常容易配置并且很快。如果可能的话,请避免使用传统缓存模式。
当页面的源代码最后面有如下的代码,就说缓存已经开始工作了:

  1. <!-- Dynamic page generated in 1.188 seconds. -->
  2. <!-- Cached page generated by WP-Super-Cache on 2016-01-10 15:44:33 -->
  3. <!-- Compression = gzip -->

推荐的设置:

高级用户可能希望使用Mod_Rewrite缓存模式,但是PHP缓存模式也很好并且推荐给初级用户使用。请激活以下选项:

1.PHP缓存

2.页面压缩

3.对已知用户不启用缓存

4.缓存重建

5.CDN支持

6.额外的主页检查
垃圾回收机制负责清理已经过期的缓存文件。缓存期满之后就变得没有意义了,如果你没有应用传统缓存模式,缓存过期起点设置为1800秒比较合适。如果你应用了传统缓存模式,缓存过期起点设置为600秒比较合适。

如果你没有使用传统缓存模式,请考虑删除“拒绝用户代理”文本框的内容,并且允许搜索引擎创建超级缓存静态文件。

一、服务器是Nginx的

将以下代码放到到nginx.conf中,然后重启nginx。

  1. location / {
  2.            # 如果请求的文件已存在,直接返回
  3.            if (-f $request_filename) {
  4.                break;
  5.            }
  6.            set $supercache_file '';
  7.            set $supercache_uri $request_uri;
  8.            set $supercache 1;
  9.            set $ihttp_host '';
  10.  
  11.            if ($request_method = POST) {
  12.                set $supercache 0;
  13.            }
  14.  
  15.            # 仅在访问文章永久链接时使用静态文件,请求中带参数则不使用静态缓存
  16.            set $qs 0;
  17.            if ($query_string) {
  18.                set $qs 1;
  19.            }
  20.  
  21.            # 不过从 twitter, facebook, feedburner 链接点过来的,总是带参数,这些访问仍然可以使用静态文件
  22.            if ($query_string ~* "^utm_source=([^&]+)&utm_medium([^&]+)&utm_campaign=([^&]+)(&utm_content=([^&]+))?$") {
  23.                set $qs 0;
  24.                set $supercache_uri $document_uri;
  25.            }
  26.            #deactivate on high load
  27.            if ($qs = 1) {
  28.                set $supercache 0;
  29.            }
  30.            # 针对已登录用户(发表过评论),可以不静态化。在访问量高峰时可注释掉
  31.            if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
  32.                set $supercache 0;
  33.            }
  34.  
  35.            # 支持移动设备,访问移动版本的网页缓存
  36.            if ($http_user_agent ~* '(iphone|ipod|aspen|incognito|webmate|android|dream|cupcake|froyo|blackberry9500|blackberry9520|blackberry9530|blackberry9550|blackberry 9800|webos|s8000|bada)') {
  37.                 set $ihttp_host '-mobile';
  38.            }
  39.  
  40.            # 指定静态缓存文件的路径
  41.            if ($supercache = 0) {
  42.                 set $supercache_uri '';
  43.            }
  44.            if ($supercache_uri ~ ^(.+)$) {
  45.                set $supercache_file /wp-content/cache/supercache/$http_host$1/index${ihttp_host}.html;
  46.            }
  47.  
  48.            # 只有当缓存文件存在时,才进行 rewrite
  49.            if (-f $document_root$supercache_file) {
  50.                #rewrite ^(.*)$ $supercache_file break;
  51.                rewrite ^ $supercache_file last;
  52.            }
  53.  
  54.            # 所有其他请求,转给 wordpress 处理
  55.            if (!-e $request_filename) {
  56.                rewrite . /index.php last;
  57.            }

二、 Apache 作为服务器程序的时候

1、直接打开apache\conf\httpd.conf

2、搜索 LoadModule rewrite_module modules/mod_rewrite.so (可能版本不一样这个不一样,不过Apache2都是这个),去将这一行前面的#去掉。

  1. LoadModule rewrite_module modules/mod_rewrite.so

3、 搜索AllowOverride None 替换为 AllowOverride All

这样才能开启WP Super Cache最快的加速模式mod_rewrite缓存模式


发布日期:

所属分类: Wordpress, Wordpress 插件 标签: