nginx开启gzip

13,921

1.开启gzip

nginx实现资源压缩的原理是通过ngx_http_gzip_module模块拦截请求,并对需要做gzip的类型做gzip压缩,该模块是默认基础的,不需要重新编译,直接开启即可。

2.参数配置

    #开启和关闭gzip模式
    gzip on|off;
    
    #gizp压缩起点,文件大于1k才进行压缩
    gzip_min_length 1k;
    
    # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
    gzip_comp_level 1;
    
    # 进行压缩的文件类型。
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript ;
    
    #nginx对于静态文件的处理模块,开启后会寻找以.gz结尾的文件,直接返回,不会占用cpu进行压缩,如果找不到则不进行压缩
    gzip_static on|off
    
    # 是否在http header中添加Vary: Accept-Encoding,建议开启
    gzip_vary on;

    # 设置压缩所需要的缓冲区大小,以4k为单位,如果文件为7k则申请2*4k的缓冲区 
    gzip_buffers 2 4k;

    # 设置gzip压缩针对的HTTP协议版本
    gzip_http_version 1.1;

3.检测效果

1.nginx的response headers中的Content-Encoding是gzip

2.返回文件大小明显被压缩

4.检测方法

1.直接在浏览器通过开发者工具查看请求头、返回头等信息

2.使用curl命令行curl -I -H"Accept-Encoding: gzip, deflate" "http://www.example.com"

3.站长工具中的网页Gzip检测

5.开启失败常规情况

1.先检查gzip_types中是否包含需要的类型

2.如果公司存在多层缓存机制,确认每一层都开启了gzip压缩

3.开启 gzip_static on,确认服务器上是否存在.gz文件