使用Nginx的壓縮功能提升蟬知建站系統的訪問速度
衆所周知,一個網站的加載速度越快,效果越好。提升網站的加載速度可以從很多方面來入手,比如提高服務器的配置,增大帶寬等等。這其中比較常用的一個手段就是對HTML,CSS和JS等文本性內容進行壓縮,以減少和用戶浏覽器之間數據傳輸的大小。常見的Apache和Nginx都提供了壓縮模塊來實現該功能。本篇文章以Nginx爲例來講解如何壓縮蟬知企業建站系統的輸出。
Nginx的配置:
打開Nginx的主配置文件,一般默認的配置文件中都已經有gzip功能的配置,配置代碼如下:
gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss
如何確認壓縮生效
第一種方法:使用火狐或者chrome的開發者工具
打開這個配置之後,訪問蟬知系統,可以通過火狐或者chrom的開發者工具來查看頁面的輸出。
比如这个图里面的输出,content-encoding: gzip,而且页面的大小是12.4KB。
第二種方法:使用curl來模擬
還可以使用curl命令來模擬支持壓縮和不支持壓縮的浏覽器來確認已經啓用了壓縮。
curl http://www.chanzhi.org/ --silent --write-out "%{size_download}\n" --output /dev/null curl http://www.chanzhi.org/ --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null 51258 12705
第一次執行的時候沒有發送支持壓縮的頭信息,返回的大小是51.2KB的原始大小。
第二次执行的时候加上了Accept-Encoding: gzip, defalt头,返回的大小是12.7KB,文件的体积大幅减少。
插曲:Nginx是通過什麽來判斷是否壓縮呢?
我們一開始設置的時候,發現CSS,JS這些文件都壓縮了。唯獨html文檔沒有壓縮。找了很久,也沒有思路。
後來就用笨辦法來比較百度、google這些網站的頭信息和蟬知建站系統的頭信息輸出。終于發現了端倪。
後來最終確定是蟬知系統輸出的頭信息導致Nginx不識別造成的。
蝉知建站系统的HTML文档都是由PHP解析输出的,蝉知程序在最开始的时候输出了一个头信息:Content-Type: text/html; Language=UTF-8; charset=UTF-8
問題就出在中間的這個Language=UTF-8上面,導致Nginx不匹配,就沒有啓用壓縮。改了下代碼,把中間的這個輸出去掉,就正常了。

