• Nginx Gzip 压缩配置


    随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢?

    gzip(GNU-ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多。gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析。浏览器那里不需要我们担心,因为目前的巨大多数浏览器都支持解析gzip过的页面。
    Nginx的压缩输出有一组gzip压缩指令来实现。相关指令位于http{….}两个大括号之间。

    gzip on;
    //该指令用于开启或关闭gzip模块(on/off)

    gzip_min_length 1k;
    //设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。

    gzip_buffers 4 16k;
    //设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k代表以16k为单位,安装原始数据大小以16k为单位的4倍申请内存。

    gzip_http_version 1.1;
    //识别http的协议版本(1.0/1.1)

    gzip_comp_level 2;
    //gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)

    gzip_types text/plain application/x-javascript text/css application/xml
    //匹配mime类型进行压缩,无论是否指定,”text/html”类型总是会被压缩的。
    gzip_vary on;
    //和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩

    nginx 配置gzip段如下:
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 16 64k;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    下面是完整的nginx配置:

    events {
    worker_connections 1024;
    }


    http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    server {
    listen 80;
    server_name localhost;
    location / {
    root html;
    index index.html index.htm;
    #proxy_pass http://localhost:8080/;
    }
    location /api {
    proxy_pass http://localhost:8080;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
    }

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 16 64k;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    }

    下面是详细说明2:

    gzip
    决定是否开启gzip模块
    param:on|off
    example:gzip on;

    gzip_buffers 
    设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间
    param1:int
    param2:int(k) 后面单位是k
    example: gzip_buffers 4 8k;

    gzip_comp_level
    设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
    param:1-9
    example:gzip_com_level 1;

    gzip_min_length
    当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩
    param:int
    example:gzip_min_length 1000;

    gzip_http_version
    用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项,目前此项基本可以忽略
    param: 1.0|1.1
    example:gzip_http_version 1.0

    gzip_proxied
    Nginx做为反向代理的时候启用,
    param:off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any]
    expample:gzip_proxied no-cache;
    off – 关闭所有的代理结果数据压缩
    expired – 启用压缩,如果header中包含”Expires”头信息
    no-cache – 启用压缩,如果header中包含”Cache-Control:no-cache”头信息
    no-store – 启用压缩,如果header中包含”Cache-Control:no-store”头信息
    private – 启用压缩,如果header中包含”Cache-Control:private”头信息
    no_last_modified – 启用压缩,如果header中包含”Last_Modified”头信息
    no_etag – 启用压缩,如果header中包含“ETag”头信息
    auth – 启用压缩,如果header中包含“Authorization”头信息
    any – 无条件压缩所有结果数据

    gzip_types
    设置需要压缩的MIME类型,非设置值不进行压缩
    param:text/html|application/x-javascript|text/css|application/xml
    example:gzip_types text/html;

  • 相关阅读:
    10. 正则表达式匹配
    svn 类似.gitignore功能实现
    GF学习未解之谜
    cocos
    unity 编辑器内对Game视图进行截图
    Roughlike游戏里面的随机数种子
    网站推荐——游戏图标网
    Unity 使用image绘制线段 直线
    c# unity 异步任务队列
    Unity编辑器调用外部exe程序 和 windows文件夹
  • 原文地址:https://www.cnblogs.com/adjk/p/4194030.html
Copyright © 2020-2023  润新知