WordPress – Nginx+Redis Cache缓存的配置代码

wordpress18字数 1876阅读模式

昨天大鸟分享了Nginx+Redis Cache缓存提速网站,因为Nginx-helper插件是可以开启两个缓存:nginx Fastcgi cache和Redis cache。这两个缓存无论是配置哪个,对于提升网站速度都是非常优秀的。

对于并发来说Redis cache缓存更优秀,不过对于个人博客来说,就是安装一个WP Super Cache也是足够应付日常了,我们应该把更多的心思放在内容上。

WordPress – Nginx+Redis Cache缓存的配置代码

今天这篇文章说什么呢,还是关于Nginx+Redis Cache缓存配置,因为昨天说的也比较详细了,所以今天大鸟只是贴一下代码,昨天的代码和今天的代码不太一样,但是功能是一样的。不过学习这篇文章之前,我们需要看看以下文章:

我们打开宝塔面板的网站配置,或者在路径[code]/www/server/panel/vhost/nginx[/code]中把自己网站的conf文件打开配置。把以下代码贴进去,额,该修改的还是要修改下的。

server
{
    listen 80;
    listen 443 ssl http2;
    server_name www.daniao.org;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/www.daniao.org;
    
  
  
    set $skip_cache 0;

    # POST requests and urls with a query string should always go to PHP
    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  127.0.0.1:6379;
    }

    location /redis-store {
        internal  ;
        set_unescape_uri $key $arg_key ;
        redis2_query  set $key $echo_request_body;
        redis2_query expire $key 14400;
        redis2_pass  127.0.0.1:6379;
    } 

    location ~ \.php$ {
        
        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_control off;

        set_escape_uri $escaped_key $key;

        srcache_fetch GET /redis-fetch $key;
        srcache_store PUT /redis-store key=$escaped_key;

        more_set_headers 'X-Cache $srcache_fetch_status';
        
   
        fastcgi_pass unix:/tmp/php-cgi-72.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
  
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #以下省略....................

这个配置代码和昨天的代码可以结合起来看,不过任何一个代码都可以成功开启Nginx+Redis Cache缓存。

开启之后,对于网站速度提升有非常大的飞跃^ _ ^

 

weinxin
我的微信
微信公众号
关注大鸟博客公众号
 
大鸟
评论  18  访客  10  作者  8
    • 奶爸de笔记
      奶爸de笔记 7

      内容才是王道,剩下的让我们去抄。

        • 大鸟
          大鸟

          @ 奶爸de笔记 对,对,让我们抄的更激烈一点吧! :lol: :lol:

        • 心灵博客
          心灵博客 4

          你怎么能更新这么快啊?
          教教我

            • 大鸟
              大鸟

              @ 心灵博客 你的站,是秒开。速度非常快,博客能坚持下来很不容易。慢慢坚持吧!

                • 心灵博客
                  心灵博客 4

                  @ 大鸟 你的评论通知邮件服务器是自己搭建的吗?有没有写这个的教程?头像是怎么弄的?

                    • 小代
                      小代 1

                      @ 心灵博客 我想用腾讯云redis,可是不知道怎么在wordpress上面修改redis服务器地址

                  • 大鸟
                    大鸟

                    @ 心灵博客 WordPress利用MailPoet+Zoho Mail自建邮件通知系统-用户订阅和管理
                    https://www.daniao.org/4069.html
                    Gravatar头像,用邮箱申请就可以了。

                  • 缙哥哥
                    缙哥哥 7

                    不是一个插件就能解决吗?

                      • 大鸟
                        大鸟

                        @ 缙哥哥 不是的,这个是基于nginx的redis缓存,nginx-helper里面可以开启使用这个缓存!

                          • 缙哥哥
                            缙哥哥 7

                            @ 大鸟 可以跟WordPress的memcached缓存同时存在吗?不知道nginx的redis缓存占用如何,以及nginx-helper插件更新能否清理内存缓存。

                              • 大鸟
                                大鸟

                                @ 缙哥哥 bt.woweiwang.org可以去看看效果,linode多伦多的vps。nginx的redis缓存的并发效果更好,不过无论哪种都很强大,我这里就是瞎折腾!

                                  • 缙哥哥
                                    缙哥哥 7

                                    @ 大鸟 因为我发现了一个问题。单纯使用memcached的时候,内存占用不多,64M足矣。但是nginx缓存文件能达到一两个G,这样2G内存的服务器就不能用内存盘。如果说nginx缓存放硬盘,同时做了redis缓存,也是64-128足矣,那就很好了!

                              • 大鸟
                                大鸟

                                @ 缙哥哥 Redis缓存主要为了动态加速,有利于减少数据库查询次数,对于Wordpress有一定的加速作用。Redis Object Cache就是这样一个插件,前提是你需要在你的VPS主机上启用Redis。所以你启用Redis Object Cache试试看!

                                  • 缙哥哥
                                    缙哥哥 7

                                    @ 大鸟 这个我用过,某个网站因为不适合memcached,我就用了redis

                                      • 大鸟
                                        大鸟

                                        @ 缙哥哥 我自己目前就是Nginx fastcgi_cache+Redis Object Cache来配合,感觉还不错!

                                  • 鸟迷
                                    鸟迷 0

                                    鸟兄,为啥你站这么快?用的alisql吗?

                                      • 大鸟
                                        大鸟

                                        @ 鸟迷 可能优化的比较到位。

                                      • 云点SEO
                                        云点SEO 6

                                        是否定期自动清除缓存,不然浏览器很长时间可能还是看到旧的网站版本

                                      匿名

                                      发表评论

                                      匿名网友

                                      :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

                                      确定