西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > wordpress教程 >

openresty使用Redis+SRcache加速wordpress

时间:2016-05-19 08:58来源:未知 作者:好模板 点击:
众所周知Redis具有轻量级,持久化,高速存取等优点,具有跨平台的特性.而这里我们做的就是使用SRcache将PHP内容直接缓存到Redis里减轻后端服务器的压力,提高后端响应速度. SRcache模块为缓存

众所周知Redis具有轻量级,持久化,高速存取等优点,具有跨平台的特性.而这里我们做的就是使用SRcache将PHP内容直接缓存到Redis里减轻后端服务器的压力,提高后端响应速度.

SRcache模块为缓存提供了一个整合后端存储的能力,可以配合Redis使用.如果Redis访问没命中,则发起一个后端请求,获取到数据之后自动缓存到Redis,下次访问将直接调用Redis中的缓存.

OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,由中国人章亦春发起,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关.

WordPress没优化前当用户访问页面的时候需要经过PHP,数据库等.而当使用了SRcache以后,用户的访问请求则是直接访问了缓存,大大的加快了响应时间.

安装好环境后,将下面的规则添加到主机的配置文件.这里环境的安装我选择了linuxeye一键包.可以直接一键安装好所需要环境.

在Http段添加下面这段代码:

upstream redis {
            server 127.0.0.1:6379;
            keepalive 512;
    }

Server段:

    set $skip_cache 0;
 
    #POST请求直接调用后端
    if ($request_method = POST) {
        set $skip_cache 1;
    }  
    if ($query_string != "") {
        set $skip_cache 1;
    }  
 
    #不要缓存以下部分
    if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
        set $skip_cache 1;
    }  
 
    #不缓存登陆用户和最近评论的用户
    if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
        set $skip_cache 1;
    }
 
  location /redis-fetch {
        internal  ;
        set  $redis_key $args;
        redis_pass  redis;
    }
 
    location /redis-store {
        internal  ;
        set_unescape_uri $key $arg_key ;
        redis2_queryset $key $echo_request_body;
        redis2_queryexpire $key 14400; 
        redis2_pass  redis;
    } 
 
 
    location ~ .*\.(php|php5)?$ {
        set $key "nginx-cache:$scheme$request_method$host$request_uri";
        try_files $uri =404;
 
        srcache_fetch_skip $skip_cache;
        srcache_store_skip $skip_cache;
 
        srcache_response_cache_controloff;
 
        set_escape_uri $escaped_key $key;
 
        srcache_fetchGET /redis-fetch $key;
        srcache_storePUT /redis-storekey=$escaped_key;
 
        more_set_headers 'X-Cache $srcache_fetch_status';
        more_set_headers 'X-Store $srcache_store_status';
        
        #下面这些不用添加
        #fastcgi_pass remote_php_ip:9000;
        fastcgi_passunix:/dev/shm/php-cgi.sock;
        fastcgi_indexindex.php;
        includefastcgi.conf;
    }

重启OpenResty即可生效,但是还有一个缺点就是当我们发布新文章,修改文章,通过评论,修改评论时无法自动更新缓存.

WordPress插件Nginx Helper可以当我们发布新文章,修改文章,通过评论,修改评论自动清理缓存.可以通过在Wordpress后台安装这个插件,直接搜索Nginx Helper即可.

openresty使用Redis+SRcache加速wordpress

(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容