Nginx下使用Fastcgi_cache和ngx_pagespeed优化WordPress性能

投稿   明月登楼  2017-07-31 07:27:31  210 人阅读  28 条评论

投放广告联系   诚邀合作伙伴   赞助我们   垃圾评论惩罚

还记得明月在『WordPress 优化思路总结』一文里专门的讲到了有关 WordPress 性能优化的问题,记得特别强调了 WordPress 本地缓存的重要性,为此还一直在推荐大家使用 WP-Rocket 插件(请参考『WordPress缓存神器WP-Rocket插件汉化版V2.9.8』和『WordPress缓存神器WP-Rocket插件进阶使用技巧』)。今天要给大家分享的是最近明月一直在折腾的一个基于 Nginx 的静态化缓存方法,这个方法不是依托于 WordPress 系统的,而是直接在 WEB 服务器层面生成和调取静态化缓存的,可以说在执行效能上是 WordPress 插件静态化的效能无法比拟的,再配合 ngx_pagespeed 模块使用 Google 的 PageSpeed 技术压缩优化 js、css、图片等静态文件后,直接让 WordPress 在服务器层面就达到最佳的性能表现。

Nginx下使用Fastcgi_cache和ngx_pagespeed优化WordPress性能 WordPress 第1张

最近也不知道是咋回事儿了,一直用的好好的 WP-Rocket 2.9.9版突然有一天造成 WordPress 登录失效了,无论如何都无法正常的登录后台,只有停用 WP-Rocket 后才可以正常登录,安装最新版 WP-Rocket 又出现频繁的报错和授权验证失败的问题,没办法只能舍弃这个缓存神器了。这时候想起里以前在张戈博客看到一篇『Nginx开启fastcgi_cache缓存加速,支持html伪静态页面』的文章,正好目前已经用的是 Nginx 了,所以就照着此文开始折腾了起来,没有想到竟然一步成功了,嘿嘿!

测试后发现缓存效果相当的“棒”,直接 WEB 服务器层面的缓存静态化表现真的是相当的“彪悍”呀,速度提升实在是太明显了。具体的教程我就不在这里过多的赘述了,大家可以参考张戈博客分享的文章即可了,里面说的是非常的明确了;如果是多站点的话可参考『Nginx配置多站点下的Proxy_cache或Fastcgi_cache缓存加速』,多思考、多实践一定可以成功的。运用 Nginx 配置文件的灵活性可以达到非常好的效果的。

Nginx下使用Fastcgi_cache和ngx_pagespeed优化WordPress性能 WordPress 第2张

顺便分享一点儿小知识,那就是 Nginx 下fastcgi_cache和proxy_cache的区别:

Nginx的Fastcgi_cache模块与Proxy_cache模块缓存区别
  • proxy_cache的作用是缓存后端服务器的内容,包括静态的和动态。
  • fastcgi_cache的作用是缓存fastcgi生成的内容,很多情况是php生成的动态的内容。
  • proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端宽带。
  • fastcgi_cache缓存减少了nginx与php的通信的次数,更减轻了php和数据库(mysql)的压力,这比用 memcached 之类的缓存要轻松得多。

静态化缓存实现了,发现服务器的负载一直都保持很低,于是又开始考虑在 Nginx 里加入 ngx_pagespeed 模块来“锦上添花”(特别强调:ngx_pagespeed 模块适合独立主机使用,虚拟主机的话不建议使用,因为 ngx_pagespeed 模块会增加主机 CPU 的负载的,鱼与熊掌不可兼得呀!)。虽然几天以来在 Nginx 添加模块编译的时候尝试了多次失败后终于还是成功了(请参考『Nginx 模块 ngx_pagespeed-1.12.34.2-stable 终于编译成功了』),并且用上 ngx_pagespeed-1.12.34.2-stable 最新版,这个版本支持 Redis 的,好像是可以把一些静态文件比如: js、css、图片等的优化压缩工作放到 Redis 里(可以理解为内存里)来提升优化效能。

Nginx下使用Fastcgi_cache和ngx_pagespeed优化WordPress性能 WordPress 第3张

在使用 ngx_pagespeed 模块后明月以外的发现博客调用的 Google AdSense 广告代码载入时间也提升了不少,甚至很多的外链js、css调用载入速度都有所提升。 CDN 流量好像也节约了一点点,哈哈,真的好意外的效果呀。还有一个意外惊喜,文章列表页的缩略图片竟然被ngx_pagespeed给转换成 WebP 格式了,哈哈!牛逼呀!

下面分享一下明月目前使用的 ngx_pagespeed 模块的配置,从这些配置上大家就可以感受到 ngx_pagespeed 的强大了:

  1. # 启用ngx_pagespeed
  2. pagespeed on;
  3. #指定ngx_pagespeed缓存路径
  4. pagespeed FileCachePath /var/ngx_pagespeed_blog_cache;
  5. # 禁用CoreFilters
  6. pagespeed RewriteLevel PassThrough;
  7. #开启使用Redis
  8. pagespeed RedisServer "host:port";
  9. # X-Header 值,用于判断是否生效
  10. pagespeed XHeaderValue "Powered By www.mydomain.com";
  11. # 过滤规则
  12. #pagespeed RewriteLevel OptimizeForBandwidth;
  13. # 不需过滤的目录或文件
  14. pagespeed Disallow "*/wp-admin/*";
  15. pagespeed Disallow "*/wp-login.php*";
  16. # 启用压缩空白过滤器
  17. pagespeed EnableFilters collapse_whitespace;
  18.  # 启用JavaScript库卸载
  19.  pagespeed EnableFilters canonicalize_javascript_libraries;
  20. # 把多个CSS文件合并成一个CSS文件(比较容易引起主题版面混乱,所以我禁用了
  21. #pagespeed EnableFilters combine_css;
  22. # 把多个JavaScript文件合并成一个JavaScript文件,禁用原因同上,大家可以酌情开启
  23. #pagespeed EnableFilters combine_javascript;
  24. # 删除带默认属性的标签
  25.  pagespeed EnableFilters elide_attributes;
  26. # 改善资源的可缓存性
  27.  pagespeed EnableFilters extend_cache;
  28. # 更换被导入文件的@import,精简CSS文件
  29.  pagespeed EnableFilters flatten_css_imports;
  30.  pagespeed CssFlattenMaxBytes 5120;
  31. # 延时加载客户端看不见的图片
  32.  pagespeed EnableFilters lazyload_images;
  33. # 启用JavaScript缩小机制
  34.  pagespeed EnableFilters rewrite_javascript;
  35. # 启用图片优化机制
  36.  pagespeed EnableFilters rewrite_images;
  37. # 预解析DNS查询
  38.  pagespeed EnableFilters insert_dns_prefetch;
  39. # 重写CSS,首先加载渲染页面的CSS规则
  40.  pagespeed EnableFilters prioritize_critical_css;

如果你用的也是 Nginx 的话记得一定不要忘了Fastcgi_cache 和 ngx_pagespeed 这两个模块哦,这绝对是两个优化 WordPress 的神器呀,这里明月的叹服一下 Nginx 了,真心好牛逼呀,据说还有非常多的神乎其技的功能呢,明月正在努力的折腾学习中,以后要好的收获了我一定会及时分享给大家的。

如果文章对你有帮助,请赞赏支持作者继续创作!

历史上的今天:

文章标签: ,   ,  
原文地址:http://blog.ymanz.com/linux/5336.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 明月登楼 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!

 发表评论


  1. 明月登楼
    明月登楼 【王爷】 @回复

    哎,郁闷了,这两个优化设置我都没有成功!

  2. 明月登楼
    明月登楼 【王爷】 @回复

    很遗憾的宣布,ngx_pagespeed国内使用实在是“水土不服”呀!

    试用了这几天的 ngx_pagespeed 还是放弃了!

    • boke112导航
      boke112导航【村长】2017-08-03 13:08  回复

      @明月登楼[偷笑] 所以我都不敢折腾ngx_pagespeed,感觉弄好缓存和CDN就很给力了

  3. Waylee
    Waylee 【举人】 @回复

    看着好晕。能不能简单点

    • 明月学习笔记Blog
      明月学习笔记Blog 【进士】2017-08-01 15:27  回复

      @Waylee呵呵,Linux下就这样的!习惯就好了!

  4. 明月登楼
    明月登楼 【王爷】 @回复

    配图配的比我的好!赞一个!

  5. 淘客网
    淘客网 【小白】 @回复

    支持博客导航!!

  6. 小白蜀黍网赚
    小白蜀黍网赚 【小白】 @回复

    缓存,好高端的样子

    • 明月学习笔记Blog
      明月学习笔记Blog 【进士】2017-07-31 18:31  回复

      @小白蜀黍网赚呵呵,其实很简单,只要会部署 Nginx 就可以搞定的!

  7. 九哥
    九哥 【状元】 @回复

    我是来学习的,感谢分享。

  8. WP头条
    WP头条 【秀才】 @回复

    这个有点厉害了

  9. 我爱动感单车网
    我爱动感单车网 【尚书】 @回复

    还用不起服务器,等以后有机会的话再说吧。

    • 明月学习笔记Blog
      明月学习笔记Blog 【进士】2017-07-31 23:00  回复

      @我爱动感单车网阿里云ECS三年才880元,应该不算贵了!算下来比我的虚拟机都划算,我都有点儿小冲动了!

  10. 码农BTS
    码农BTS 【状元】 @回复

    干货一篇,收下

  11. 田珊珊个人博客
    田珊珊个人博客 【小白】 @回复

    很好的分享

  12. 姜辰
    姜辰 【进士】 @回复

    坐等大佬分享

  13. Koolight
    Koolight 【尚书】 @回复

    服务器就是强大,各种方案都可以!

  14. 摩羯
    摩羯 【书童】 @回复

    很详细,很强大啊~~ [赞]

  15. BanYuner
    BanYuner 【进士】 @回复

    据网络上面说,这个方法对于CPU有一定的要求

    • 明月登楼
      明月登楼 作者回复2017-07-31 11:40  回复

      @BanYuner是的,会占用一定CPU使用率的!不过,换来的是浏览速度,如果CPU够用就不能浪费了!

    • 明月学习笔记Blog
      明月学习笔记Blog 【进士】2017-07-31 18:31  回复

      @BanYuner配合免费 CDN 后效果奇好!

  16. 心动
    心动 【进士】 @回复

    nginx一直用,很强大~

  17. 福利堆
    福利堆 【尚书】 @回复

    nginx用得不是很习惯哦
    我还是用 apache的

  18. 重庆游戏人
    重庆游戏人 【小白】 @回复

    确实很强大,就是我自己不知道怎么配置呀

    • 明月学习笔记Blog
      明月学习笔记Blog 【进士】2017-07-31 18:32  回复

      @重庆游戏人网上太多类似教程了!其实照着做就可以了!