#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 全部經常使用選項 進行 分析講解。