javaGrowing

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            92 隨筆 :: 33 文章 :: 49 評論 :: 0 Trackbacks

          背景:
          HTTP?壓縮可以大大提高瀏覽網站的速度,它的原理是,在客戶端請求網頁后,從服務器端將網頁文件壓縮,再下載到客戶端,由客戶端的瀏覽器負責解壓縮并瀏覽。相對于普通的瀏覽過程HTML ,CSS,Javascript , Text?,它可以節省40%左右的流量。更為重要的是,它可以對動態生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等輸出的網頁也能進行壓縮,壓縮效率驚人

          一,對于Tomcat5.0以后的版本是支持對輸出內容進行壓縮的. 使用的是gzip壓縮格式

          下面是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" 壓縮類型

          我這里的配置內容為:
          ?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??????????????????compression="on"?
          ?6???????????????compressionMinSize="2048"?
          ?7???????????????noCompressionUserAgents="gozilla,?traviata"?
          ?8???????????????compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"??/>
          ?9????<!--?Note?:?To?disable?connection?timeouts,?set?connectionTimeout?value
          10?????to?0?-->
          11????
          12????<!--?Note?:?To?use?gzip?compression?you?could?set?the?following?properties?:
          13????
          14???????????????compression="on"?
          15???????????????compressionMinSize="2048"?
          16???????????????noCompressionUserAgents="gozilla,?traviata"?
          17???????????????compressableMimeType="text/html,text/xml"
          18????-->
          19

          二,對于Apache而言,有兩種情況
          ???
          1)針對Apache2.0之前的版本,它原本是不支持的,不過可以通過添加第三方的module_gzip模塊來啟用
          ???2)針對Apache2.0及之后的版本,Apache提供支持, 不過不叫gzip,而叫mod_deflate
          下面就對Apache2.0及之后的版本作一個說明
          1) 去掉#LoadModule headers_module modules/mod_headers.so前面的注釋#,
          2) 添加LoadModule deflate_module modules/mod_deflate.so
          3) 在VirtualHost中添加
          1????<Location?"/">
          2????????SetOutputFilter?DEFLATE
          3????????BrowserMatch?^Mozilla/4?gzip-only-text/html
          4????????BrowserMatch?^Mozilla/4\.0[678]?no-gzip
          5????????BrowserMatch?\bMSIE?!no-gzip?!gzip-only-text/html
          6????????SetEnvIfNoCase?Request_URI?\.(?:gif|jpe?g|png)$?no-gzip?dont-vary
          7????????Header?append?Vary?User-Agent?env=!dont-vary
          8????</Location>
          9

          我這里面有一個完整的演示
          ?1#?加載deflate模塊
          ?2LoadModule?headers_module?modules/mod_headers.so
          ?3LoadModule?deflate_module?modules/mod_deflate.so
          ?4<VirtualHost?*:80>
          ?5????DocumentRoot?f:/apacheTest
          ?6????<Location?"/">
          ?7????????SetOutputFilter?DEFLATE
          ?8????????BrowserMatch?^Mozilla/4?gzip-only-text/html
          ?9????????BrowserMatch?^Mozilla/4\.0[678]?no-gzip
          10????????BrowserMatch?\bMSIE?!no-gzip?!gzip-only-text/html
          11????????SetEnvIfNoCase?Request_URI?\.(?:gif|jpe?g|png)$?no-gzip?dont-vary
          12????????Header?append?Vary?User-Agent?env=!dont-vary
          13????</Location>
          14</VirtualHost>
          posted on 2007-06-25 14:02 javaGrowing 閱讀(3700) 評論(1)  編輯  收藏 所屬分類: jsp

          評論

          # re: 給Tomcat,Apache配置gzip壓縮(HTTP壓縮)功能 (轉)[未登錄] 2014-06-20 17:49 xh
          這第二種是怎么實現壓縮的啊  回復  更多評論
            

          主站蜘蛛池模板: 忻城县| 榆林市| 收藏| 乌鲁木齐县| 金门县| 凤山市| 穆棱市| 登封市| 湛江市| 安陆市| 台州市| 凌源市| 青铜峡市| 崇礼县| 白玉县| 高碑店市| 六盘水市| 孟州市| 新晃| 松原市| 黄陵县| 武平县| 南宁市| 正镶白旗| 龙里县| 大埔区| 乌鲁木齐县| 安达市| 东港市| 京山县| 荥阳市| 南城县| 都昌县| 乳山市| 万年县| 大城县| 海盐县| 昌黎县| 广灵县| 银川市| 辉县市|