nginx的使用(三)-- 使用gzip加速页面加载

介绍

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

配置说明

    #$gzip_ratio计算请求的压缩率,$body_bytes_sent请求体大小
    log_format  main  '$remote_addr - $remote_user [$time_local] "$host" - "$request" '
                    '$gzip_ratio - $body_bytes_sent - $request_time';
    access_log  logs/access.log  main;
    # 开启gzip
    gzip off;
    # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
    # 当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩。
    gzip_min_length 1k;
    # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
    # 随着压缩级别的升高,压缩比有所提高,但到了级别6后,很难再提高;
    # 随着压缩级别的升高,处理时间明显变慢;
    # gzip很消耗cpu的性能,高并发情况下cpu达到100%
    gzip_comp_level 1;
    # 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
    # 是否在http header中添加Vary: Accept-Encoding,建议开启
    gzip_vary on;
    # 禁用IE 6 gzip
    # 通过表达式,表明哪些UA头不使用gzip压缩
    gzip_disable "MSIE [1-6]\.";
    # 设置压缩所需要的缓冲区大小  
    # 设置用于处理请求压缩的缓冲区数量和大小。比如32 4K表示按照内存页(one memory page)大小以4K为单位(即一个系统中内存页为4K),申请32倍的内存空间。建议此项不设置,使用默认值
    gzip_buffers 32 4k;
    # 设置gzip压缩针对的HTTP协议版本
    # 用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项。默认在http/1.0的协议下不开启gzip压缩。
    gzip_http_version 1.0;