Web服务器配置Gzip压缩提升网站性能

前言:

HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这也会增加服务器的负载. 一般服务器中都安装有这个功能模块的。

一、如何使用gzip

gzip工作的原理很简单,通过http请求header增加一个“Accept-Encoding:gzip”指令来告知服务器需要进行gzip压缩,而服务器接收到该请求后,通过“Content-Encoding:gzip”来告知客户端进行gzip解压。

对于Tomcat来说这是为:

 <Connector executor="tomcatThreadPool"
               port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"
                compression="on"
            compressionMinSize="2048"
            noCompressionUserAgents="gozilla, traviata"
            compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"/>

tomcat中的server.xml中对connector进行如上配置:

  1. compression="on" 开启压缩
  2. compressionMinSize="2048"大于2KB的文件才进行压缩
  3. noCompressionUserAgents="gozilla, traviata",对于这两种浏览器,不进行压缩
  4. compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"表明支持html、xml、js、css、json等文件格式的压缩

二、使用cache-control禁用代理缓存

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class CacheControlFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
            ServletException {

        HttpServletResponse resp = (HttpServletResponse) response;
//      resp.setHeader("Expires", "Tue, 03 Jul 2001 06:00:00 GMT");
//      resp.setDateHeader("Last-Modified", new Date().getTime());
//      resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0");
        resp.setHeader("Cache-Control", "max-age=0, private");
//      resp.setHeader("Pragma", "no-cache");

        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {

    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }
}

web.xml中添加:

 <filter>
        <filter-name>cacheControlFilter</filter-name>
        <filter-class>com.honzh.common.filter.CacheControlFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>cacheControlFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
时间: 2024-10-19 22:52:17

Web服务器配置Gzip压缩提升网站性能的相关文章

13 nginx gzip压缩提升网站速度

一:nginx gzip压缩提升网站速度 我们观察news.163.com的头信息 请求: Accept-Encoding:gzip,deflate,sdch 响应: Content-Encoding:gzip Content-Length:36093 再把页面另存下来,观察,约10W字节,实际传输的36093字节 原因-------就在于gzip压缩上. 原理: 浏览器---请求----> 声明可以接受 gzip压缩 或 deflate压缩 或compress 或 sdch压缩 从http协议

Gzip压缩优化网站

网站常使用GZIP压缩算法对网页内容进行压缩,然后传给浏览器,以减小数据传输量,提高响应速度.浏览器接收到GZIP压缩数据后会自动解压并正确显示.GZIP加速常用于解决网速慢的瓶颈. 压缩Filter中需要先判断客户浏览器时候支持GZip自动解压,如果支持,则进行GZIP压缩,否则不压缩.判断的依据是浏览器提供的Header信息,代码如下: GZipFilter.java 1 ?package com.rom.util; 2 3 import java.io.IOException; 4 5 i

提升网站性能之设置gzip

tomcat如何设置gzip: http://www.tuicool.com/articles/aMRRFre http://blog.csdn.net/xuefeng0707/article/details/8660229 apache如何设置gzip(鸟哥linux): http://blog.chinaunix.net/uid-25266990-id-3479069.html http://www.cnblogs.com/quinnxu/archive/2012/08/06/gzip.ht

网站服务器部署及优化---3---使用eAccelerator提升网站服务器的性能(rhel6.5)

RedHat Enterprise 6.5环境下使用eAccelerator优化网站性能 第一步:在做优化之前,首先对网站服务器的硬件做一下检测 1,内存信息:2G内存,swap容量为4G [[email protected] ~]# free -m total       used       free     shared    buffers     cached Mem:          1870       1228        642          0         47

2017年05月10日记一次微项目投产 | 安卓版微信内置浏览器不能解析gzip压缩过的mp4视频的问题

前言 今天投产了一个小项目,一个很简单的H5,有播放视频功能,使用了videojs插件. 之前也做过数个视频播放,视频的转压都按照既定流程进行,文件放到FTP后,iphone和安卓机测试下来都没有问题. 于是给链接,业务组直接在微信公众号里投放了.那个企业号有不少关注的人,推送发出去1分钟就有近千阅读量. 但是我在点击链接后,发现项目打不开了,而且该企业官网的主站也挂了,在经过pc端和手机4G下测试发现问题依然存在后,赶紧报bug给其他同事. 通过询问FTP管理员得知,那个"大"企业的

RedHat Enterprise 6.5环境下使用eAccelerator优化网站性能

RedHat Enterprise 6.5环境下使用eAccelerator优化网站性能 第一步:在做优化之前,首先对网站服务器的硬件做一下检测 1,内存信息:2G内存,swap容量为4G [[email protected] ~]# free -m total       used       free     shared    buffers     cached Mem:          1870       1228        642          0         47

Tomcat启用GZIP压缩,提升web性能

一.前言 最近做了个项目,遇到这么一个问题:服务器返回给客户端的json数据量太大(大概65M),在客户端加载了1分多钟才渲染完毕,费时耗流量,用户体验极其不好.后来网上搜优化的方法,就是Http压缩. HTTP压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览.即:通过减小HTTP响应大小来减少响应时间.相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%

gzip压缩tomcat服务器响应包,大幅提升web性能

忘记是第几次读<高性能网站建设指南>的"规则4──压缩组件"一章了,之前一直搞得浑浑噩噩,今天才恍然有所觉悟,原来通过减小HTTP响应大小来减少响应时间应用到tomcat服务器上是这么一回事,结果令人欣慰万分,同时令我感到羞愧.gzip压缩率高达70%左右,这对于提升web性能来说简直就是逆天的表现,而今天之前的我,却不曾知晓!想必很多大牛都已经不屑于整理这样的资料,然而对于我来说,"像张白纸,爱情才刚刚开始,我要写的字太多!" 一.效果展示 对于js.

优化Web网站性能

一.前端优化 网站性能优化是一个很综合的话题,涉及到服务器的配置和网站前后端程序等各个方面,我只是从实际经历出发,分享一下自己所尝试过的网站性能优化方法.之所以在标题上挂一个web2.0,是因为本文更偏重于中小网站的性能优化,我所使用的系统也是典型web2.0的LAMP架构. 首先讲讲前端的优化,用户访问网页的等待时间,有80%是发生在浏览器前端,特别是页面和页面中各种元素(图片.CSS.Javascript. flash…)的下载之上.因此在很多情况下,相对于把大量的时间花在艰苦而繁杂的程序改