Tengine 动态加载模块(pagespeed)

2018年6月25日10:55:00 发表评论 949 views
本文最后更新于2018年6月25日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

PageSpeed 的功能特性

PageSpeed 模块可以使用数量众多的重写"过滤器",每个过滤器都可以选择性地开启/关闭,从而自动进行各种优化(比如,减小文档大小、减少 HTTP 请求数据、减少 HTTP 往返次数以及缩短 DNS 解析时间)。

下面是 ngx_pagespeed 支持的其中一些过滤器。想了解支持的全部过滤器,请参阅官方文档

  • Collapse Whitespace(压缩空白):通过把 HTML 网页中的多处连续空白换成一处空白,减少带宽使用量。
  • Canonicalize JavaScript Libraries(规范化转换 JavaScript 库):通过自动把流行的 JavaScript 库换成免费托管的 JavaScript 库(比如由谷歌托管),减少带宽使用量。
  • Combine CSS(合并 CSS):通过把多个 CSS 文件合并成一个 CSS 文件,减少 HTTP 请求数量。
  • Combine JavaScript(合并 JavaScript):通过把多个 JavaScript 文件合并成一个 JavaScript 文件,减少 HTTP 请求数量。
  • Elide Attributes(省略属性):通过删除由默认属性指定的标签,缩小文档大小。
  • Extend Cache(扩展缓存):通过优化网页资源的可缓存性,减少带宽使用量。
  • Flatten CSS Imports(精简 CSS 导入):通过删除 CSS 文件中的@import,减少 HTTP 请求往返次数。
  • Lazyload Images(延时加载图片):延时加载在客户端浏览器上看不见的图片。
  • Minify JavaScript(缩小 JavaScript):通过缩小 JavaScript,减少带宽使用量。
  • Optimize Images(优化图片):通过引入更多的内嵌图片、压缩图片,或者将 GIF 图片转换成 PNG 图片,优化图片分发。
  • Pre-Resolve DNS(预解析 DNS):通过预解析 DNS,缩短 DNS 解析时间。
  • Prioritize Critical CSS(优化加载关键 CSS 规则):重写 CSS 文件,以便首先加载渲染页面的 CSS 规则。

与 Apache 网站服务器不一样,Nginx 模块无法在运行时动态加载,而是必须在编译时加载。截至本文截稿时,ngx_pagespeed 模块并未内置在随主要 Linux 发行版(比如 Fedora 19)发布的 Nginx 程序包中。因而,想使用 Nginx 中的 PageSpeed,你需要利用源代码来构建 Nginx。

环境装备

安装好Nginx或Tengine

下载pagespeed模块,并解压

目录为/usr/local/src目录

下载PSOL优化库,并解压

目录为/usr/local/src目录

动态加载模块

使用dso_tool,动态加载pagespeed模块

此种方法为动态模块编译,可以nginx -V 查看,不需要再次configure、make

查看模块

编辑nginx.conf配置文件支持pagespeed

检查配置文件 并且重新加载nginx

测试效果

搜索下 pagespeed,可以看到,大部分源码已经被替换

  • 微信小程序
  • 关注微信小程序
  • weinxin
  • 微信公众号
  • 关注微信公众号
  • weinxin
Honest1y

发表评论

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