#pagespeed
提及 pagespeed 相信不少前端工程师都不会陌生。css
是的 还有 YSlowhtml
pagespeed 和 YSlow 是前端优化的神器,也是大牛们经验的宝贵积累。清晰地告诉咱们开发部署的最佳实践。前端
咱们回想一下前端工程构建部署的一些通用的方法(注意:只讨论 构建 和 部署)nginx
build
咱们可能会使用 gruntjs
, gulpjs
。使用哪种咱们均可以完成如下的目标git
jshint
------------------------------ js上下文安全检查 amd|cmd optimizer( js )
-------------------- js 模块 合并优化 minify( css, html, js )
--------------------- 最小化 css html js 文件optimizer( jpg | gif | png )
------------------ 优化压缩图片文件img( width + height )
---------------------- 显式声明图片大小属性merge_file(js, css)
----------------------- 合理的合并 js, css 文件css splite
---------------------------- 将更多小图片合成一张大图lazyload_images
------------------------- 对图片使用懒加载deploygithub
... and moreweb
以上基本是每个项目都要进行的在 构建期 与部署期 对项目的优化。gulp
使得这些 方案 咱们均可以经过使用 任务脚本 去自动化完成。可是 有些事情 能不能共经过 其余技术方案 更好的完成这项工做呢。 答案 是能够的。缓存
暂且,咱们不讨论 代替 相似 与 gulpjs 要作的一些事情是否具备合理性。 由于 咱们只能作到 构建期 的事情。咱们力所能及的事情。可是 部署期 的事情。可是部署期的不少事 咱们 的 脚本 是很难作到,也不该该作到。好比说, 使用 web server 代理缓存(nginx, squid),使咱们的构建期文件在运行期长期有效。并且不少事情若是可以不写脚本 就能在 部署期自动搞定岂不是 更生开发时间了吗。安全
好了废话了这么多。那么 ngx_pagespeed 究竟是什么东西呢
相信 熟悉 nginx 反向代理服务器的同窗 一看见 ngx 就知道,应该是一个 nginx 扩展。
ngx_pagespeed 是一个 nginx 的一个 扩展模块,它能够对你 部署在 nginx 上的 静态文件进行 符合 web 开发最佳实践的全部优化。 以上你看到的优化他均可以自动完成。一行代码都不用写。只须要一个简单的配置便可。
(ngx_pagespeed 官网) (ngx_pagespeed GitHub) (ngx_pagespeed 文档)
接下来的博文 我会对 ngx_pagespeed 全部经常使用选项 进行 分析讲解。