Nginx gzip的配置和校验

开启nginx gzip压缩后,网页、css、js等静态资源的大小会大大的减少,从而可以节约大量的带宽,提高传输效率,给用户快的体验。虽然会消耗cpu资源,但是为了给用户更好的体验是值得的。

未加入gzip时的响应头信息

比如访问首页,在浏览器中查看响应头信息:
这里写图片描述

加入gzip配置

在nginx.conf文件的http模块中加入gzip的配置

[root@localhost html]# cat ../conf/nginx.conf

user root;
worker_processes  4;
worker_rlimit_nofile 65535;

events {
    worker_connections  65535;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    gzip  on;   #开启gzip
    gzip_min_length 1k; #低于1kb的资源不压缩
    gzip_comp_level 3; #压缩级别【1-9】,越大压缩率越高,同时消耗cpu资源也越多,建议设置在4左右。
    gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;  #需要压缩哪些响应类型的资源,多个空格隔开。不建议压缩图片,下面会讲为什么。
    gzip_disable "MSIE [1-6]\.";  #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
    gzip_vary on;  #是否添加“Vary: Accept-Encoding”响应头

    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

为了验证压缩效果,配合压缩资源的类型,我们在html目录中新建一个hbk.xml文件,为了看到效果,随便在网上找了一个spring.xml的配置文件,注意一定要大小大于1kb(配置中最小压缩配置的是1kb)。

在这里我的hbk.xml文件大小为3kb

[root@localhost html]# ll -h
总用量 12K
-rw-r--r--. 1 root root  537 4月  12 18:04 50x.html
-rw-r--r--. 1 root root 3.0K 4月  13 16:40 hbk.xml
-rw-r--r--. 1 root root  612 4月  12 18:04 index.html

在浏览器上访问hbk.xml文件,查看响应头信息如下:
这里写图片描述

可以看到相应头带上了Content-Encoding:gzip标识,说明gzip压缩起效果了。

gzip虽然好用,但是一下类型的资源不建议启用。

1、图片类型

原因:图片如jpg、png本身就会有压缩,所以就算开启gzip后,压缩前和压缩后大小没有多大区别,所以开启了反而会白白的浪费资源。(Tips:可以试试将一张jpg图片压缩为zip,观察大小并没有多大的变化。虽然zip和gzip算法不一样,但是可以看出压缩图片的价值并不大)

2、大文件

原因:会消耗大量的cpu资源,且不一定有明显的效果。

猜你喜欢

转载自blog.csdn.net/huangbaokang/article/details/79931429