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

2023-02-1116:01:55服务器及运维Comments1,790 views字数 2467阅读模式

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

最大的体会就是同样的配置,在不同的VPS商家那里跑同一个网站,在同样的流量情况下,居然一个顺畅而另一个卡顿,这个给我最大的感受就是在购买VPS之前一定要看看别人的评测,尤其是VPS主机性能评测这一块,一定要仔细对比,否则容易花不少冤枉钱。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

后来给Wordpress做优化时,关注在页面缓存上,之前用过的缓存插件包括但不限于WordPress Super Cache、WP Fastest Cache、W3 Total Cache、cos-html-cache、Cachify……总得来说,安装了缓存插件后提速还是有效果的,但是也带来了不少的问题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

例如配置复杂、生成规则、插件冲突以及无法应对突发流量,也就是说使用缓存插件还是无法达到应对大流量冲击的情况。最后,在朋友的推荐下启用了Nginx fastcgi_cache缓存,直接使用Nginx为页面生成缓存,效率比使用PHP缓存插件要高得多,特别适合小配置的VPS上使用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

宝塔面板开启Nginx fastcgi_cache给WordPress缓存加速方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

准备事项

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

开始配置

Nginx配置文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

在服务器根目录创建文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

  1. /tmp/wpcache
  2. /tmp/wpcache/temp
一键复制

并且755 或者777权限文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

然后去网站配置文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

宝塔面板开启Nginx fastcgi_cache给WordPress缓存加速方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

加入server之前加入文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

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

然后在#SSL-END后加入文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

  1. set $skip_cache 0;
  2. #post访问不缓存
  3. if ($request_method = POST) {
  4. set $skip_cache 1;
  5. }
  6. #动态查询不缓存
  7. if ($query_string != "") {
  8. set $skip_cache 1;
  9. }
  10. #后台等特定页面不缓存(其他需求请自行添加即可)
  11. if ($request_uri ~* "/wp-admin/|/wp-admin/*|/xmlrpc.php|wp-.*.php|/feed|/rss|index.php|sitemap(_index)?.xml") {
  12. set $skip_cache 1;
  13. }
  14. #对登录用户、评论过的用户不展示缓存
  15. if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
  16. set $skip_cache 1;
  17. }
  18. #这里请参考你网站之前的配置,特别是sock的路径,弄错了就502了!关于sock,宝塔面板的在/www/server/php/你的php版本/etc/php-fpm.conf中有配置路径宝塔面板的sock
  19. location ~ [^/]\.php(/|$)
  20. {
  21. try_files $uri =404;
  22. fastcgi_pass unix:/tmp/php-cgi-74.sock;
  23. fastcgi_index index.php;
  24. include fastcgi.conf;
  25. #新增的缓存规则
  26. fastcgi_cache_bypass $skip_cache;
  27. fastcgi_no_cache $skip_cache;
  28. #添加一个头部,用于判断缓存状态 fastcgi_cache WORDPRESS; add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
  29. add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
  30. add_header X-XSS-Protection "1; mode=block"; # XSS 保护
  31. etag on;
  32. fastcgi_cache_valid 200 301 302 1d;
  33. }
一键复制

特别注意sock的路径,弄错了就502了!关于sock,宝塔面板的在/www/server/php/你的php版本/etc/php-fpm.conf中有配置路径宝塔面板的sock文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

这里需要注意一下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

  1. fastcgi_cache_path /tmp/wpcache levels=1:2 keys_zone=WORDPRESS:128m inactive=1d max_size=1G;
一键复制

WORDPRESS:128m的意思是分给缓存128M的内存,如果你的可用内存少于128M会出现保存失败,同理,你的内存很大,你可以分配500M都没问题 这个按配置来。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

安装Nginx Helper插件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

后台搜索Nginx Helper插件安装启用,这个插件是为wordpress fastcgi_cache缓存打造的一个插件,十分的好用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

插件设置页面如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

宝塔面板开启Nginx fastcgi_cache给WordPress缓存加速方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

配置好之后保存。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

保存后还需要修改插件默认的缓存目录,找到插件目录下的nginx-helper\includes\class-nginx-helper.php,修改里面的/var/run/nginx-cache为/tmp/wpcache,不然插件无法清理缓存!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

缓存效果文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

保存重启nginx后就可以看到缓存效果啦,如下图所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

宝塔面板开启Nginx fastcgi_cache给WordPress缓存加速方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

对了记得退出登录 首次访问会显示BYPASS,第二次就缓存了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/30852.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/yunwei/30852.html

Comment

匿名网友 填写信息

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

确定