javaGrowing

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            92 隨筆 :: 33 文章 :: 49 評(píng)論 :: 0 Trackbacks

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

          一,對(duì)于Tomcat5.0以后的版本是支持對(duì)輸出內(nèi)容進(jìn)行壓縮的. 使用的是gzip壓縮格式

          下面是tomcat5.5.20 中的$tomcat_home$/conf/server.xml的原內(nèi)容

          ?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行內(nèi)容可以看出,要使用gzip壓縮功能,你可以在Connector實(shí)例中加上如下屬性即可
          1) compression="on" 打開(kāi)壓縮功能
          2) compressionMinSize="2048" 啟用壓縮的輸出內(nèi)容大小,這里面默認(rèn)為2KB
          3) noCompressionUserAgents="gozilla, traviata" 對(duì)于以下的瀏覽器,不啟用壓縮?
          4) compressableMimeType="text/html,text/xml" 壓縮類型

          我這里的配置內(nèi)容為:
          ?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

          二,對(duì)于Apache而言,有兩種情況
          ???
          1)針對(duì)Apache2.0之前的版本,它原本是不支持的,不過(guò)可以通過(guò)添加第三方的module_gzip模塊來(lái)啟用
          ???2)針對(duì)Apache2.0及之后的版本,Apache提供支持, 不過(guò)不叫g(shù)zip,而叫mod_deflate
          下面就對(duì)Apache2.0及之后的版本作一個(gè)說(shuō)明
          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

          我這里面有一個(gè)完整的演示
          ?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 閱讀(3711) 評(píng)論(1)  編輯  收藏 所屬分類: jsp

          評(píng)論

          # re: 給Tomcat,Apache配置gzip壓縮(HTTP壓縮)功能 (轉(zhuǎn))[未登錄](méi) 2014-06-20 17:49 xh
          這第二種是怎么實(shí)現(xiàn)壓縮的啊  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 河源市| 宣化县| 富阳市| 延长县| 梓潼县| 锡林郭勒盟| 兴义市| 元氏县| 新昌县| 晴隆县| 黑水县| 上饶市| 远安县| 宁津县| 万宁市| 河池市| 武宣县| 麻江县| 东明县| 宜阳县| 扎鲁特旗| 什邡市| 阿城市| 隆化县| 丹寨县| 安图县| 丁青县| 南靖县| 涡阳县| 河曲县| 湖北省| 崇义县| 丹巴县| 三河市| 安乡县| 普安县| 永年县| 玉山县| 邵东县| 始兴县| 德昌县|