衆所周知,一個網站的加載速度越快,效果越好。提高網站的加載速度能夠從不少方面來入手,好比提升服務器的配置,增大帶寬等等。這 其中比較經常使用的一個手段就是對HTML,CSS和JS等文本性內容進行壓縮,以減小和用戶瀏覽器之間數據傳輸的大小。常見的Apache和Nginx都提 供了壓縮模塊來實現該功能。本篇文章以Nginx爲例來說解如何壓縮蟬知企業建站系統的輸出。javascript
打開Nginx的主配置文件,通常默認的配置文件中都已經有gzip功能的配置,配置代碼以下:css
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的開發者工具html
打開這個配置以後,訪問蟬知系統,能夠經過火狐或者chrom的開發者工具來查看頁面的輸出。java
好比這個圖裏面的輸出,content-encoding: gzip,並且頁面的大小是12.4KB。chrome
第二種方法:使用curl來模擬json
還可使用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,文件的體積大幅減小。服務器
咱們一開始設置的時候,發現CSS,JS這些文件都壓縮了。惟獨html文檔沒有壓縮。找了好久,也沒有思路。app
後來就用笨辦法來比較百度、google這些網站的頭信息和蟬知建站系統的頭信息輸出。終於發現了端倪。curl
後來最終肯定是蟬知系統輸出的頭信息致使Nginx不識別形成的。
蟬知建站系統的HTML文檔都是由PHP解析輸出的,蟬知程序在最開始的時候輸出了一個頭信息:Content-Type: text/html; Language=UTF-8; charset=UTF-8
問題就出在中間的這個Language=UTF-8上面,致使Nginx不匹配,就沒有啓用壓縮。改了下代碼,把中間的這個輸出去掉,就正常了。