ngx_pagespeed(1) - 什麼是 ngx_pagespeed

#pagespeed
提及 pagespeed 相信不少前端工程師都不會陌生。css

pagesoeed-001.png

是的 還有 YSlowhtml

YSlow.png

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 ------------------------- 對圖片使用懶加載
  • ... and more

deploygithub

  • gzip() --------------------------------- 開啓對文本文件的壓縮
  • cache( max-age, etag, expires ) ---------------- 開啓對靜態文件的緩存策略
  • cdn (static file) -------------------對一些長期不會變化的文件使用cdn
  • dns prefetch --------------------- dns 預查詢
  • ... 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 全部經常使用選項 進行 分析講解。

相關文章
相關標籤/搜索