網站訪問優化(二):開啟apache伺服器gzip壓縮

小雷FansUnion發表於2015-05-13
昨天,把頻寬從1M升級到2M,使用cdn版本的jquery之後,網站訪問速度由平均5s(在禁止快取的情況下,使用快取大概在2.8s)下降到2.8s的樣子。

  今天,繼續優化。

第1步:
   把圖片進行了壓縮,70kb以上的banner用的大圖,壓縮成50kb左右。圖片質量稍微下降了一點,沒錢連高清圖片都用不起,所以還是得有錢,賺錢。

第2步:
  js壓縮。

  昨天,也用了網上下載的js/css壓縮器,部署時,用壓縮版本的。速度並沒有明顯的提升,可能是因為js和css很少,而且都比較小的緣故。

  晚上,用百度站長檢測了下網站訪問,平均3s多,比我本地(湖北-武漢-20MB頻寬)2.8s要慢了0.7s的樣子。

  其中一項診斷建議是,使用gzip壓縮。

  於是,今天就重點嘗試了Apache開啟gzip壓縮。
第1步:
找到並開啟apache/conf目錄中的httpd.conf檔案
第2步:
httpd.conf中開啟deflate_Module和headers_Module模組,具體做法為將 如下兩句前面的#去掉:

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

第3步: 在httpd.conf檔案底部加入如下程式碼配置需要壓縮的檔案:

<IfModule deflate_module>
SetOutputFilter DEFLATE
# Don’t compress images and other 
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary 
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary 
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary 
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css 
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
第4步:重啟apache服務端
  最好先檢測下語法,是否正確。
  /etc/init.d/httpd -t
  /etc/init.d/httpd restart
第5步:
使用工具重新檢測是否開啟gzip壓縮。考慮到相關廣告檢測機制具體的gzip檢測工具訪問地址可以到搜尋引擎中去查詢。
 http://tool.chinaz.com/Gzips/
  輸入你的域名。

 另外,也可以使用Chrome檢視。 
   

  1. Content-Encoding:
    gzip
  2. 啟動GZIP壓縮後,Response Headers,會有上面一行顯示。

4個疑問:
1.Apache開啟gzip壓縮,和手動壓縮JS/CSS區別多大呢?
效果上,當然是gzip效果好。
2.Apache版本問題。
  本地Apache是2.4.9的,線上Apache是2.2的。
  本地最初一直報錯,網上搜了下“

AddOutputFilterByType


Apache AddOutputFilterByType is deprecated. How to rewrite using mod_filter?
網上有說法是,2.4不再支援,但是後來,2.2版本卻又成功了。

2.4版本的 
AddOutputFilterByType 配置,參考的是下面的:

http://stackoverflow.com/questions/5230202/apache-addoutputfilterbytype-is-deprecated-how-to-rewrite-using-mod-filter
本地2.4的Apache沒有成功。

3.在.htaccess中,配置gzip壓縮,一直沒有成功。
4.統計程式piwik.js對響應時間有一定的影響。
  piwik偶爾不夠穩定,尤其是在頻寬為1M的時候。
----------------------------------
開啟,GZIP壓縮之後,首頁平均訪問時間下降到1.8s。
1.82s(load:1.28,DOMContentLoaded:397ms)

啟用快取的情況下,第2次訪問:
1.00s(load:469ms,DOMContentLoaded:352ms)
----------------------------------
頻寬升級到3M,平均訪問速度:http://

禁用瀏覽器快取:1.69s(load:1.16s,
DOMContentLoaded:415ms)

啟動瀏覽器快取:1.18s(load:640ms,
DOMContentLoaded:349ms)

----------------------------------
ThinkPHP快取:如果為debug模式,大概會多花1s左右。
----------------------------------
總結:在把頻寬從1M升級到3M,圖片用Fireworks壓縮,開啟Apache的Gzip壓縮,使用cdn版本的jquery之後,
平均訪問速度從5s到1.5s。

當然,Thinkphp使用快取,瀏覽器不禁用快取的情況下。
2s之內能開啟,大家可以接受吧。

----------------------------------
參考資料:
http://jingyan.baidu.com/article/db55b609a7bc234ba20a2f7e.html
http://stackoverflow.com/questions/5230202/apache-addoutputfilterbytype-is-deprecated-how-to-rewrite-using-mod-filter   

相關文章