nginx、apache与tomcat开启gzip压缩

最近在研究页面加载优化

对于页面元素较多或者页面加载量比较大的时候,就需要开启服务器的gzip压缩了,对于常规资源的压缩体积减少量非常可观。

服务器
nginx版本为1.8.0
apache版本为
2.2.21
tomcat版本为7.0.35

apache配置:
$ nginx -V
列出的配置中添加:--with-http_gzip_static_module
重新编译安装

完成之后 修改nginx配置:

在http节点下添加:
gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
$ nginx -t
$ nginx -s reload

apache配置:

在http.conf中取消以下两行的注释:

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

mod_deflate.so 为gzip压缩功能模块

mod_headers.so 能够在返回请求时告知浏览器本页面使用了gzip压缩

 

然后添加以下配置:

<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE    #必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩

    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary #设置不对gif|jpe?g|png格式的文件进行压缩
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary #同上,不对exe|t?gz|zip|bz2|sit|rar格式的文件进行压缩
    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary #同上,不对pdf|mov|avi|mp3|mp4|rm格式的文件进行压缩

    AddOutputFilterByType DEFLATE text/* #设置对文件是文本的内容进行压缩,例如text/html  text/css  text/plain等
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript #这段代码你只需要了解application/javascript application/x-javascript这段就可以了,这段的意思是对javascript文件进行压缩
    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp #这段是告诉apache对php类型的文件进行压缩

    BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.x 有一些问题,所以只压缩文件类型是text/html的
    BrowserMatch ^Mozilla/4.0[678] no-gzip # Netscape 4.06-4.08 有更多的问题,所以不开启压缩
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # IE浏览器会伪装成 Netscape ,但是事实上它没有问题
</IfModule>

 

对于多媒体及压缩文件等类型的资源,本身就是经过相应的压缩算法压缩过的,所以二次压缩对体积影响不大,而且由于资源体积相对较大,在压缩时会加重服务器的压力。

 

开启后在相应头中可以看到相应的变化:



对于大量文本页面的压缩效果非常明显(本机测试):

未开启压缩前:


开启压缩后:


由于压缩解压工作主要是由cpu来处理的,所以开启了gzip压缩后,对服务器cup的压力会增大,apache在响应浏览器请求时也会多执行一步,所以本机测试时虽然加载的数据量变少了,但加载时间却边长了。





tomcat配置:

找到<Connector/>标签
添加以下配置:
compression="on"
compressionMinSize="500"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/png"

添加完成后的
<Connector/>标签状态如下:

   <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            compression="on"
            compressionMinSize="500"
            noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/png"/>            
 
 

 

End.




转载于:https://www.cnblogs.com/lianche/p/3510659.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值