nginx配置gzip压缩

为什么要使用gzip压缩

服务端给客户端响应时若启用压缩功能,可以减少传输时所需的带宽,大大提高响应速度。
在这里插入图片描述
如上图所示,nginx在把响应报文发送到客户端之前,可以对静态资源文件进行压缩,这样传输文件的大小变得很小,传输速度会大幅度提高,之后浏览器再进行解压,得到所请求的静态资源。

具体配置

先直接上配置文件吧,具体配置如下所示:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen      80;
        server_name localhost;

        location / {
                root /usr/share/nginx/html;
                index index.html index.htm;
        }

        location ~* \.(jpg|gif|png)$ {
                gzip on;
                gzip_http_version 1.1;
                gzip_comp_level 2;
                gzip_types text/plain application/json application/x-javascript application
/css application/xml application/xml+rss text/javascript application/x-httpd-php im age/jpeg image/gif image/png;
                root /home/picture;
        }

        location ~* \.(txt|xml)$ {
               gzip on;
               gzip_http_version 1.1;
               gzip_comp_level 2;
               root /home/txt;
               gzip_types text/plain application/json application/x-javascript application
/css application/xml application/xml+rss text/javascript application/x-httpd-php im age/jpeg image/gif image/png;
        }

    }
}

可以看到我的配置文件里分别配置了图片静态资源的压缩和txt文件的静态资源压缩。这里是为了之后进行对比,首先我们来分别说明一下每行配置语句的意义。
gzip on; #顾名思义,是开启gzip压缩的配置
gzip_http_version 1.1; #这里指的是gzip应用于http协议的版本,现绝大多数都是http1.1,配置为1.1即可。
gzip_comp_level 2;#这里配置的是gzip的压缩倍率,默认是1,可以配置0-9,但压缩倍率并不是越大越好,因为压缩和解压操作时非常耗费cpu资源的,设置的过高会导致压缩和解压缩的时间变得很长,反而会降低响应时间。
gzip_types #配置需要压缩的静态资源文件类型。

针对不同类型文件的压缩效果对比

话不多说先上图,我们来分别看一下效果吧。

对图片的压缩效果:

在这里插入图片描述
可以看到,resource size为578kb,压缩后经过网络传输的图片大小依旧为578kb。这是什么原因?
其实也很简单,jpg和png本来就是一种压缩格式,也就是说图片文件本来就已经被压缩过了,自然再进行压缩也就没有效果了。

那我们再来看一下对txt文件的压缩效果:

在这里插入图片描述
可以看到压缩前的大小是1.9MB,压缩后经过网络传输的大小为29.7KB,差距是非常的明显的。再上一张压缩前的效果来对比一下压缩时间吧
在这里插入图片描述
可以看到gzip开启前的响应时间是14.33秒,而压缩开启后仅为几百毫秒,对响应速度的提升效果是非常显著的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值