tomcat服務器開啟gzip功能的方法


http://blog.csdn.net/wang_159369/article/details/8107163

 

tomcat5.0以后的版本是支持對輸出內容進行gzip格式的壓縮的。該功能默認是關閉的,如果需要啟用該功能,我們需要修改tomcat的配置文件server.xml,修改的方法是在server.xml的節點

處加上屬性:  compression=”on”  ,即

下面是tomcat5.5.20 中的$tomcat_home$/conf/server.xml的原內容

1  < Connector port ="80" maxHttpHeaderSize ="8192"
2                 maxThreads ="150" minSpareThreads ="25" maxSpareThreads ="75"
3                 enableLookups ="false" redirectPort ="8443" acceptCount ="100"
4                 connectionTimeout ="20000" disableUploadTimeout ="true" URIEncoding ="utf-8" />
5  <!-- Note : To disable connection timeouts, set connectionTimeout value
6       to 0 -->
7
8  <!-- Note : To use gzip compression you could set the following properties :
9
10                 compression="on"
11                 compressionMinSize="2048"
12                 noCompressionUserAgents="gozilla, traviata"
13                 compressableMimeType="text/html,text/xml"
14  -->

 

從上面的第8行內容可以看出,要使用gzip壓縮功能,你可以在Connector實例中加上如下屬性即可
1) compression=”on” 打開壓縮功能
2) compressionMinSize=”2048″ 啟用壓縮的輸出內容大小,這里面默認為2KB
3) noCompressionUserAgents=”gozilla, traviata” 對於以下的瀏覽器,不啟用壓縮 
4)  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/png,image/jpg,image/gif" 壓縮類型

對於某些文本文件比如:log、txt等文件,我們也可以讓服務器采用gzip壓縮傳輸,修改conf目錄下web.xml,添加   

<mime-mapping>
         <extension>log</extension>
         <mime-type>text/plain</mime-type>
</mime-mapping>

等,就可以指定壓縮傳輸了。通常情況下,壓縮傳輸能大幅度提高展示速度。

 

Nginx和Tomcat同時啟用GZIP的后果:

http://www.iteye.com/topic/1118087

 

新部署的一台服務器在做了性能調優以后發現FCK在線編輯器IE、firefox都出現報錯,只有chrome正常。百思不得其解,差點就把FCK換掉。經過千辛萬苦終於找到了原因(本人找錯誤原因的運氣一直都非常好):

 

開始以為是腳本亂碼,看了文件頭的那段注釋以后確認不是這個問題。

 

在firefox的firedebug上面看到的腳本一直報找不到對象的錯誤,難道是公司的網絡龜速導致腳本加載順序不協調所致?幾次刷新以后問題還在,304狀態碼說明不是網絡龜速的原因。

 

最后把FCK的javascript腳本下載到本地以后一看,只有20k左右,而完整的是249K,看來我找到原因了~~

 

還是百思不得其解,好好的靜態腳本文件為什么會下載了一部分就完了呢?而且首次下載的狀態碼是200,之后的刷新都是304,這違反了我對HTTP狀態碼的理解。

 

撇開前端的Nginx,直接訪問tomcat居然頁面就正常了。so~問題在nginx。nginx處理靜態資源的能力從來都沒有懷疑過(這再次違反了我對XXX的理解)。

 

靈光一閃,前后端的服務器最近都進行了調優,難道是這次修改了 配置文件導致的?so首先關閉nginx的gzip  off;,重啟Nginx后全世界正常了。隨后關閉后端tomcat的compression="off",重新啟用Nginx的gzip,問題終於解 決了。

 

總結:多層服務器結構的系統啟用gzip壓縮要注意一個問題:前端服務器啟用了gzip以后,后端的服務器就不要啟用gzip壓縮了,不然部分瀏覽器會下載到不完整的文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM