?
設置TOMCAT啟用GZIP壓縮? 通過瀏覽器HTTP訪問
<
Connector
port
="8080"
protocol
="HTTP/1.1"
connectionTimeout
="20000"
redirectPort
="8443"
executor
="tomcatThreadPool"
URIEncoding
="utf-8"
compression
="on"
compressionMinSize
="50"
noCompressionUserAgents
="gozilla, traviata"
compressableMimeType
="text/html,text/xml,text/javascript,text/css,text/plain"
/>
?
從上面節點的屬性可以看出,要使用gzip壓縮功能,你需要在Connector節點中加上如下屬性
compression="on" 啟動壓縮功能
compressionMinSize="2048" 設置啟動壓縮文件的最小值,也就是說當請求的資源大小 大于該值時才啟動壓縮 默認2048byte 也就是2KB
noCompressionUserAgents="gozilla, traviata" 設置不啟動壓縮的瀏覽器 該內容會在http請求頭中找到
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 設置哪些mime格式的資源需要壓縮,具體格式可以再tomcat/conf/web.xml中找到
?
上面是專門針對Tomcat基于HTTP協議連接器(Connector)的配置,也就是只有當用戶直接通過瀏覽器訪問Tomcat的8080端口時,Tomcat才會針對配置進行GZIP壓縮。如果我們的應用服務器是Apache+Tomcat集成的話 上面的配置就不起作用了,因為用戶是通過瀏覽器訪問Apache服務器,Apache服務器在轉發請求到Tomcat去處理,他倆之間數據傳輸走的是另外一個連接器(Connector) [<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>], 但是AJP協議目前貌似還不支持GZIP的配置,所以我們只要自己擴展GZIP的壓縮。
擴展的代碼我們已經不需要去實現了,已經有現成的開源框架了,直接拿來用就可以了。pjl-comp-filter-1.8.1.jar
然后配置一下WEB.XML就可以了。
<
filter
>
<
filter-name
>
CompressingFilter
</
filter-name
>
<
filter-class
>
com.planetj.servlet.filter.compression.CompressingFilter
</
filter-class
>
<
init-param
>
<
param-name
>
compressionThreshold
</
param-name
><!-- 資源大小超過100byte的就被壓縮 -->
<
param-value
>
100
</
param-value
>
</
init-param
>
<
init-param
>
<
param-name
>
includeContentTypes
</
param-name
><!-- 啟動GZIP壓縮的MIME類型 -->
<
param-value
>
text/html,text/xml,text/javascript,text/css,text/plain
</
param-value
>
</
init-param
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
CompressingFilter
</
filter-name
>
<
url-pattern
>
/*
</
url-pattern
>
</
filter-mapping
>
?
還有一些其他的配置可以參考官方文檔,在這里不一一說明了。還有就是對圖片資源一般不啟用GZIP壓縮,因為他們已經采用高壓算法了,在壓縮沒有意義反而會白白消耗服務器端的資源。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
