还记得明月在【明月的 WordPress 优化思路总结』一文里专门的讲到了有关 WordPress 性能优化的问题,记得特别强调了 WordPress 本地缓存的重要性,为此还一直在推荐大家使用 WP-Rocket 插件(请参考【推荐一个 WordPress 本地缓存的神器: WP-Rocket 插件(附图文教程)』)。今天要给大家分享的是最近明月一直在折腾的一个基于 Nginx 的静态化缓存方法,这个方法不是依托于 WordPress 系统的,而是直接在 WEB 服务器层面生成和调取静态化缓存的,可以说在执行效能上是 WordPress 插件静态化的效能无法比拟的,再配合 ngx_pagespeed 模块使用 Google 的 PageSpeed 技术压缩优化 js、css、图片等静态文件后,直接让 WordPress 在服务器层面就达到最佳的性能表现。
最近也不知道是咋回事儿了,一直用的好好的 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 和 proxy_cache 的区别:
静态化缓存实现了,发现服务器的负载一直都保持很低,于是又开始考虑在 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 里(可以理解为内存里)来提升优化效能。
在使用 ngx_pagespeed 模块后明月以外的发现博客调用的 Google AdSense 广告代码载入时间也提升了不少,甚至很多的外链 js、css 调用载入速度都有所提升。 CDN 流量好像也节约了一点点,哈哈,真的好意外的效果呀。
还有一个意外惊喜,文章列表页的缩略图片竟然被 ngx_pagespeed 给转换成 WebP 格式了,哈哈!牛逼呀!
下面分享一下明月目前使用的 ngx_pagespeed 模块的配置,从这些配置上大家就可以感受到 ngx_pagespeed 的强大了:
- # 启用 ngx_pagespeed
- pagespeed on;
- #指定 ngx_pagespeed 缓存路径
- pagespeed FileCachePath /var/ngx_pagespeed_blog_cache;
- # 禁用 CoreFilters
- pagespeed RewriteLevel PassThrough;
- #开启使用 Redis
- pagespeed RedisServer "host:port";
- # X-Header 值,用于判断是否生效
- pagespeed XHeaderValue "Powered By www.mydomain.com";
- # 过滤规则
- #pagespeed RewriteLevel OptimizeForBandwidth;
- # 不需过滤的目录或文件
- pagespeed Disallow "*/wp-admin/*";
- pagespeed Disallow "*/wp-login.php*";
- # 启用压缩空白过滤器
- pagespeed EnableFilters collapse_whitespace;
- # 启用 JavaScript 库卸载
- pagespeed EnableFilters canonicalize_javascript_libraries;
- # 把多个 CSS 文件合并成一个 CSS 文件(比较容易引起主题版面混乱,所以我禁用了
- #pagespeed EnableFilters combine_css;
- # 把多个 JavaScript 文件合并成一个 JavaScript 文件,禁用原因同上,大家可以酌情开启
- #pagespeed EnableFilters combine_javascript;
- # 删除带默认属性的标签
- pagespeed EnableFilters elide_attributes;
- # 改善资源的可缓存性
- pagespeed EnableFilters extend_cache;
- # 更换被导入文件的@import,精简 CSS 文件
- pagespeed EnableFilters flatten_css_imports;
- pagespeed CssFlattenMaxBytes 5120;
- # 延时加载客户端看不见的图片
- pagespeed EnableFilters lazyload_images;
- # 启用 JavaScript 缩小机制
- pagespeed EnableFilters rewrite_javascript;
- # 启用图片优化机制
- pagespeed EnableFilters rewrite_images;
- # 预解析 DNS 查询
- pagespeed EnableFilters insert_dns_prefetch;
- # 重写 CSS,首先加载渲染页面的 CSS 规则
- pagespeed EnableFilters prioritize_critical_css;
如果你用的也是 Nginx 的话记得一定不要忘了 Fastcgi_cache 和 ngx_pagespeed 这两个模块哦,这绝对是两个优化 WordPress 的神器呀,这里明月的叹服一下 Nginx 了,真心好牛逼呀,据说还有非常多的神乎其技的功能呢,明月正在努力的折腾学习中,以后要好的收获了我一定会及时分享给大家的。
历史文章推荐:
- 2020: CDN 服务——没有对比就没有伤害呀!(27)
- 2019: 谷歌 AdSense 为什么提示收益受损风险需要修正一些 ads.txt 问题(6)
- 2018: 深度好文:谷歌的软实力和硬实力(6)
- 2018: 明月登楼收费服务详解(10)
- 2012: 网站数据丢失后,搜索引擎的变化分析(2)
- 本博客公众号
- 扫一扫关注!
-
- 本博客小程序
- 微信内浏览本博客
-
2017-09-29 09:25 9F
ngx_pagepseed 有时候会有些问题,造成图片什么的404,需要经常
touch /dev/shm/ngx_pagespeed_cache/xxxxxxxxxxxx/cache.flush
不过,确实优化能力出众。
2017-09-29 09:36 B1
@ homejoy 嗯,效果还是有的,但是感觉不适合国内!特别是用国内 CDN 的时候,兼容性上有问题,有些浏览器对PageSpeed优化过的文件也存在兼容性问题!可以说是有点儿水土不服!
2017-09-29 09:38 B2
@ 明月登楼 CDN确实不好,但是它有些也挺好的,比如智能判断浏览器,来输出webp或者其他格式的图片,我反正一直在使用,因为,免费CDN已经没有了…
博主,交换连接么?
2017-09-29 10:27 B3
@ homejoy 不好意思,最近友链太多了,暂时交换不了呀!欢迎常来!我是有访必回的!嘿嘿!
2017-09-29 10:28 B3
@ homejoy 咦,贵站好像没有开评论模块呀!
2017-09-29 10:31 B4
@ 明月登楼 原来开的,然后垃圾评论太多,还有就是“实名制”干脆就拿掉了
2017-09-29 11:03 B4
@ homejoy 啊,“实名制”跟 WordPress 的评论没有关系的,因为邮箱基本上都是“实名认证”过的呀!
关闭评论对SEO不好的!特别是现在百度飓风算法会根据评论判断文章的“原创”度的好像!
2017-09-29 11:09 B4
@ 明月登楼 评论关闭了也清闲多了
2017-09-29 11:50 B4
@ homejoy 呵呵,我始终是感觉一个没有“评论”的博客是好像没有“生命气息”似的!
2017-09-29 12:00 B4
@ 明月登楼 我主要当作个人工作和少部分学习笔记用了。
2017-09-29 12:01 B4
@ homejoy 哦,那就看自己喜好了!只要自己喜欢就可以了!
2017-08-04 11:15 8F
学习了…不过对我等没有太多语言基础的人来说还是折腾的够呛
不过说到WordPress 我织梦和WP都用过 感觉织梦收录好像是要比WP快点点
2017-08-04 11:24 B1
@ 重庆礼品公司 是的,织梦是纯静态的,在收录方面确实要快一些!
2017-08-03 17:17 7F
nginx简直搞不懂哦
2017-08-03 17:35 B1
@ 福利堆 Nginx 其实不复杂的,无非就是配置文件和 Nginx 的编译而已!
2017-08-03 16:15 6F
支持一下,祝博主商祺!
2017-08-03 16:20 B1
@ 很文博客 多谢支持,欢迎常来哦!
2017-08-03 12:44 5F
预感明月会成为大神
2017-08-03 12:46 B1
@ 闲鱼 见笑了,拾人牙慧而已了!
2017-08-02 10:35 4F
哪天我去折腾一下!
2017-08-02 13:46 B1
@ 橘子书 呵呵,ngx_pagespeed还是不要折腾了,因为这玩意儿感觉在国内有点儿水土不服,会产生很多的JS失效链接和语法错误啥的!我已经停用了!
2017-08-02 01:14 3F
学习了
2017-08-02 01:46 B1
@ 阁楼藏 多谢支持!
2017-07-31 16:04 2F
我也用了一款缓存的软件,总觉得还是不够好
2017-07-31 16:06 B1
@ 冷知识 哦,用的啥插件呀?
2017-07-30 23:46 1F
没想到博主都折腾起这个来了,当年看到张戈博客上分享的文章,我根本不敢去折腾,感觉太高深了。所以很佩服明月兄的折腾精神
2017-07-31 01:44 B1
@ 懿古今 呵呵,其实一点都不难的!无非是编译一下Nginx而已!