nginx gzip 压缩传输

nginx gzip 压缩说明

关于nginx压缩传输分为 gzip在线压缩 和 gzip_static 静态压缩

  • 在线压缩:gzip

   客户端请求服务器资源时,根据设置实时压缩并响应客户端浏览器,压缩本身会消耗nginx本地资源;

  • 静态压缩:http_gzip_static_module

  在用户访问相关资源如js、css、图片等类型文件时,会自动识别对应的.gz压缩文件,传输给客户端/浏览器,省去了nginx本地压缩的环节。

  详细可以参考nginx官方资料:

  https://nginx.org/en/docs/http/ngx_http_gzip_static_module.html

 

前端开发构建说明

前端开发在构建bundle时,可以使用webpack 插件根据预定算法或条件对部分代码压缩为.gz 文件

nginx gzip_static 可以在用户访问相关资源如js、css时,会自动识别是否存在.gz压缩文件,

如果存在,可直接传送.gz 文件给客户端浏览器,增加传输速度,节省带宽资源,提高用户体验。

nginx gzip 静态压缩示例

关于nginx 启动gzip压缩的整体方案配置示例如下

server {
    # 监听端口
    listen 80;
    server_name domain.com;

    # 做静态压缩后为防止gz文件被直接下载
    # 添加正则表达,当访问gz结尾的文件是重定向到主页或者直接deny all 
    location ~* \.(gz|zip)$ {

    deny all;
    # deny all 或者 rewrite 
    # rewrite ^(.*)$ http://$host/index.html  permanent;
    }
    location / {
        root /usr/share/nginx/html;
        index index.html index.html.gz;

        # 静态压缩
        # gzip_static 上客户端浏览器访问服务器上已事先压缩到gz文件
        # 文件类型见gzip_types
        gzip_static on;
        gzip_vary on;

        # 10k 以上的文件nginx自动压缩传送给客户端浏览器
        gzip             on;
        gzip_min_length 10k;
        gzip_buffers 4 16k;
        gzip_comp_level 6;
        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript image/jpeg im
age/gif image/png;
        gzip_disable "MSIE [1-6]\.";

    }
}

 

posted @ 2021-12-16 21:11  i学笔记  阅读(632)  评论(0编辑  收藏  举报