Nginx伺服器開啟pagespeed加速的教程

來源:互聯網
上載者:User

上周有一個站長問到我一個問題,問fastcgi_cache和pagespeed加速有沒有衝突。略微想了下,2個都是比較原生的主,應該不存在相容問題。
至於這個朋友問到這2個機制處理的先後問題,我思考了下。既然fastcgi_cache已經是緩衝到本地的檔案,那麼pagespeed肯定是後處理的。通俗來說,就是當使用者訪問WEB時,Nginx 應該是先調用 fastcgi緩衝,然後再進行pagespeed最佳化處理,最後返回資料給使用者。
當然,經過我最後的測試,也證實了我的猜測是正確的。


一、還能再快

 

張戈部落格已經很快了,然而並沒有什麼L用,該抄襲的抄襲,模仿的模仿,關鍵詞和流量都碎了一地。在這個互連網時代,張戈溫馨提示一下,有什麼好的創意或賺錢方法,絕逼不要透漏。唯有悶聲發大財才是王道,因為這是一個沒有道義、不講章法的混亂時代!案例就不貼了,看到張戈部落格某篇部落格排名好,指數高,各種模仿,那標題擬的和張戈部落格親生似的。某度也是一個大煞筆,什麼垃圾辨識度,不識原創為何物,真是無力吐槽!好久沒在文章中吐槽了,真是憋著荒!
回到文章,分享還得繼續...
印象中張戈部落格從51CTO轉載過一篇pagespeed相關文章,但是一直也沒去嘗試一下。搜尋一下發現是2年前的教程:
藉助PageSpeed,為Nginx網站伺服器提速
這次正好周末有空,就果斷重新編譯了一下Nginx,測試了一把 pagespeed。最終還是不負眾望,效果比較滿意。如果想網站速度更進一步,可以跟著本文走一遍。


二、重新編譯

 

大夥大概也發現了,編譯nginx 是折騰它的基本功,如果你還不會,那就看下張戈部落格以前分享的文章,學好這個基本功再來玩:
Nginx線上服務狀態下平滑升級或新增模組的詳細操作記錄
一般來說新增編譯一個模組,只要提供這個模組的下載地址,編譯應該就沒多大問題了。
本文模組下載及編譯參考:

#進入 nginx 源碼同級目錄,比如在 /usr/local/src #下載模組wget -O ngx_pagespeed-release-1.9.32.6-beta.tar.gz https://codeload.github.com/pagespeed/ngx_pagespeed/tar.gz/release-1.9.32.6-beta #解壓tar zxvf  ngx_pagespeed-release-1.9.32.6-beta.tar.gz #下載psol最佳化庫cd ngx_pagespeed-release-1.9.32.6-betawget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz #解壓psoltar zxvf 1.9.32.6.tar.gz #查看現有nginx的編譯參數/usr/local/nginx/sbin/nginx -V #重新編譯nginx,新增pagespeed模組cd /usr/local/src/nginx-1.60./configure  --add-module=../ngx_pagespeed-release-1.9.32.6-beta 後面接上上一步查詢到的參數 #再往後make 和 make upgrade 就不多說了,之前張戈部落格都已經分享過了

三、修改配置

 

編輯網站的nginx設定檔,比如 zhangge.net.conf,在server模組裡面加入如下代碼:

#如果不知道加到哪,可以加入到 root /home/wwwroot/yourdomain.com; 的後面即可# 啟用ngx_pagespeed    pagespeed on;    pagespeed FileCachePath /tmp/cache/ngx_pagespeed_cache;    # 禁用CoreFilters    pagespeed RewriteLevel PassThrough;    # 啟用壓縮空白過濾器    pagespeed EnableFilters collapse_whitespace;    # 啟用JavaScript庫卸載    pagespeed EnableFilters canonicalize_javascript_libraries; #Google被牆,並不確定這個設定有沒有副作用 # 把多個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; # Example 禁止pagespeed 處理/wp-admin/目錄(可選配置,可參考使用)pagespeed Disallow "*/wp-admin/*";然後,新增快取檔案夾:mkdir -p /tmp/cache/ngx_pagespeed_cache

最後,重啟Nginx即可生效(實測發現這個模組的修改必須重啟nginx,reload是無效的...),發現很多朋友不知道如何重啟nginx,然後看到要重啟就把伺服器重啟了下,雖然也可以,但是也太暴力了點吧?
通過工具安裝nginx,一般都帶有service控制,可以使用如下命令重啟nginx

service nginx restart或/etc/init.d/nginx restart實在沒有,也可以先kill掉,再啟動:Shell#無情殺死pkill -9 nginx #重新救活/usr/local/nginx/sbin/nginx

Ps:那些用面板的朋友可別說不是這個路徑啥的, 誰要你用面板。。。這也是面板蛋疼的一點,路徑個性不一,自己擼去吧。\

四、測試效果\

①、看源碼

好了,重啟Nginx後,咱們重新整理一下前台,隨便搜尋下 pagespeed,可以發現源碼大部分都已經被替換了:

如圖,絕大部分js、css的url都變了,被合并成了一個url。

體積小點的圖片,比如表情,被轉成了瀏覽器編碼的形式,算是減少伺服器請求的一種最佳化:

看起來最佳化後,html代碼變多了很多,於是下載看了下:

果然, 同一個頁面開啟後,大了20多k!尼瑪,要是其他地方沒有大的改善,這絕逼有點嚇人了,於是繼續看看。

②、看圖片

接著,看了下文章縮圖,發現還能壓縮圖片體積:

比如未啟用pagespeed之前的圖片大小【圖片地址】:

開啟後:【圖片地址】

尼瑪,十多倍的差異,讓我有點不信邪。於是下載到電腦看下:

這下差異確實小了點,大概2倍多。但是,後者本是WebP格式,也就是Google(google)開發的一種旨在加快圖片載入速度的圖片格式。我下載到本地後會自動轉成了jpge格式,體積肯定是有所變化!總的來說,這壓縮效果真的很明顯!不過經過我多次驗證,發現並非所有圖片都有這個效果,估計和原本圖片的壓縮程度有關係。

③、工具測

光靠肉眼,有點無力。pagespeed 主要用來加快瀏覽器的渲染載入,所以我決定用下阿里測分析下加速前後的區別。

最佳化前的測試報告:

報告地址:http://www.alibench.com/rp/f9a4c1a8ddd267e0897613501dd2b422

最佳化後的測試報告:

報告地址:http://www.alibench.com/rp/17778d646ca7133609cc348b77096f37

點開一下載入詳情對比了下:

最佳化前:

最佳化後:

效果還是很明顯的,感興趣的可以自己點開報告地址,查看更詳細的對比!當然也推薦喜歡折騰的朋友嘗試一下開啟 Nginx 伺服器 pagespeed加速!如果是 Apache 伺服器,可以整合 mod_pagespeed,感興趣的自己去找資料折騰吧!

最新補充:張戈部落格體驗了幾天,發現一個問題:啟用這玩意之後,CPU佔用會比較高,Nginx 經常100%,雖然存在靜態緩衝,但是網站後台偶爾會比較卡,暫時已取消這個功能。所以對於使用單核CPU的雲端服務器就不建議折騰這個玩意了

 

原文來自:http://zhangge.net/5063.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.