!
也想出现在这里? 联系我们
广告位
当前位置:首页>技术分享>网站运维>WordPress开启Nginx fastcgi_cache缓存加速方法-宝塔面板

WordPress开启Nginx fastcgi_cache缓存加速方法-宝塔面板

使用WordPress建站的过程中,对于优化Wordpress性能、加快网站访问速度这一环节走了不少的“弯路”。当网站出现访问缓慢、CPU内存耗尽的情形时,最开始想到的是升级服务器配置,后来发现有些无良的VPS商家背后限制资源严重,加钱升级真的很伤人。

最大的体会就是同样的配置,在不同的VPS商家那里跑同一个网站,在同样的流量情况下,居然一个顺畅而另一个卡顿,这个给我最大的感受就是在购买VPS之前一定要看看别人的评测,尤其是VPS主机性能评测这一块,一定要仔细对比,否则容易花不少冤枉钱。

后来给Wordpress做优化时,关注在页面缓存上,之前用过的缓存插件包括但不限于WordPress Super Cache、WP Fastest Cache、W3 Total Cache、cos-html-cache、Cachify……总得来说,安装了缓存插件后提速还是有效果的,但是也带来了不少的问题。

例如配置复杂、生成规则、插件冲突以及无法应对突发流量,也就是说使用缓存插件还是无法达到应对大流量冲击的情况。最后,在朋友的推荐下启用了Nginx fastcgi_cache缓存,直接使用Nginx为页面生成缓存,效率比使用PHP缓存插件要高得多,特别适合小配置的VPS上使用。

WordPress开启Nginx fastcgi_cache缓存加速方法-宝塔面板

准备事项

  1. 宝塔
  2. wordpress网站
  3. Nginx -Tengine(Tengine性能方面好)

开始配置

Nginx配置

在服务器根目录创建

/tmp/wpcache
/tmp/wpcache/temp

并且755 或者777权限

然后去网站配置

WordPress开启Nginx fastcgi_cache缓存加速方法-宝塔面板

加入server之前加入

fastcgi_cache_path /tmp/wpcache levels=1:2 keys_zone=WORDPRESS:128m inactive=1d max_size=1G;
fastcgi_temp_path /tmp/wpcache/temp;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
#忽略一切nocache申明,避免不缓存伪静态等
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

然后在#SSL-END后加入

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/|/wp-admin/*|/xmlrpc.php|wp-.*.php|/feed|/rss|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;
        }
        #这里请参考你网站之前的配置,特别是sock的路径,弄错了就502了!关于sock,宝塔面板的在/www/server/php/你的php版本/etc/php-fpm.conf中有配置路径宝塔面板的sock
        location ~ [^/]\.php(/|$)
            {
                try_files $uri =404;
                fastcgi_pass unix:/tmp/php-cgi-74.sock;
                fastcgi_index index.php;
                include fastcgi.conf;  
                #新增的缓存规则
                fastcgi_cache_bypass $skip_cache;
                fastcgi_no_cache $skip_cache;
                #添加一个头部,用于判断缓存状态                fastcgi_cache WORDPRESS;                add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
                add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
                add_header X-XSS-Protection "1; mode=block"; # XSS 保护
                etag  on;
                fastcgi_cache_valid 200 301 302 1d;
        }

特别注意sock的路径,弄错了就502了!关于sock,宝塔面板的在/www/server/php/你的php版本/etc/php-fpm.conf中有配置路径宝塔面板的sock

这里需要注意一下

fastcgi_cache_path /tmp/wpcache levels=1:2 keys_zone=WORDPRESS:128m inactive=1d max_size=1G;

WORDPRESS:128m的意思是分给缓存128M的内存,如果你的可用内存少于128M会出现保存失败,同理,你的内存很大,你可以分配500M都没问题 这个按配置来。

安装Nginx Helper插件

后台搜索Nginx Helper插件安装启用,这个插件是为wordpress fastcgi_cache缓存打造的一个插件,十分的好用。

插件设置页面如下:

WordPress开启Nginx fastcgi_cache缓存加速方法-宝塔面板

配置好之后保存。

保存后还需要修改插件默认的缓存目录,找到插件目录下的nginx-helper\includes\class-nginx-helper.php,修改里面的/var/run/nginx-cache为/tmp/wpcache,不然插件无法清理缓存!

缓存效果

保存重启nginx后就可以看到缓存效果啦,如下图所示:

WordPress开启Nginx fastcgi_cache缓存加速方法-宝塔面板

对了记得退出登录 首次访问会显示BYPASS,第二次就缓存了。

给TA打赏
共{{data.count}}人
人已打赏
网站运维

wordpress如何提高页面加载速度?

2022-3-11 0:50:23

网站运维

多个Wordpress网站共用文章数据实现方法

2022-4-9 16:45:40

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 2651636361@qq.com 或点击右侧 私信:少羽 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索