Blog的访问速度终于上去了

2013年10月30日 分类: Nginx, Wordpress (178 个脚步)

最近都一直在折腾现在的blog,现在有点小成果了。。。

最起码首页打开起来基本上很快了,其他页需要访问后才会变得快速访问~~

之前还想用Nginx + WP Super Cache + Memcached + WP touch 的,无奈不知道怎么样去写Nginx的配置

当用了Nginx + WP Super Cache + Memcached 后吧,WP touch插件就用不了,在手机版访问的时候就会发现,电脑版跟手机版完全混乱。

缓存了手机版的吧,电脑版访问也是手机版的。。。唉。。难受

想想,算了,还是暂时抛弃 Memcached 吧,等什么时候有空了,在研究下怎么将他们分离出来。

现在是用着WP Super Cache的缓存功能,将页面直接生成成html格式,并且设置过期时间都为0,当有新的评论时自动刷新当前缓存。

Nginx参数是参考网上的来对自己的网站进行了修改,如下

        # 如果请求的文件已存在,直接返回
        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 1;
        }

        # 支持移动设备,访问移动版本的网页缓存
        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;
        }

当手机版访问时,会在生成的文件中添加-mobile,电脑版则正常。这样就能区分用户是从那个设备来进行访问的了。

都生成静态html页面了,都不用查询数据库,所以访问速度就上去了~~~

暂时就折腾到着把

Blog的访问速度终于上去了 【声明】本文 Blog的访问速度终于上去了 为柠之漠然原创文章,转载请注明出自 枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2013/10/blog-access-speed-was-good/ , 转载请保留本声明!

标签: , , , ,
6 条评论
  • 我看有个站用的W3T 效果非常好 。。。

    • w3t后台设置复杂,并且没有中文
      supercache 是官方出品,有中文,设置简单
      效果是相同的,看你自己选择咯(之前懒得看这么多设置,就直接用的supercache)

  • 人在么。。。 我用的lnmp 现在不生成缓存文件 无比蛋疼 求助。

    • 用了memcached是不会生成缓存文件的哦。。在设置取消实验室功能后才会生成
      不生成的话看看日志,看是哪里出错了

      • 是么 wu super cache 有Memcached功能的 只是实验功能 目前。 你用的哪种?

        • 我现在就是用着那个实验室功能,觉得还行。
          你的wordpress 如果有手机版的话,建议还是不启用实验室功能的好。
          因为同时2个在memcached好像会冲突
          有时候手机版先访问,有可能电脑版就会看到的是手机版的效果

          PS 你可以先试试,如果不冲突了,就可以开着了

你必须要启用 Javascript