这篇文章主要介绍了 Nginx Gzip 模块启用和配置指令详解的, 需要的朋友可以参考下
Nginx 的 gzip 模块是内置的, 在 http 中添加如下配置:
代码如下: gzip on;
- gzip_min_length 5k;
- gzip_buffers 4 16k;
- gzip_http_version 1.0;
- gzip_comp_level 3;
- gzip_types text/plain application/x-JavaScript text/CSS application/xml text/JavaScript application/x-httpd-PHP image/jpeg image/gif image/PNG;
- gzip_vary on;
配置指令详细注释:
gzip on|off
默认值: gzip off
开启或者关闭 gzip 模块
gzip_static on|off
nginx 对于静态文件的处理模块
该模块可以读取预先压缩的 gz 文件, 这样可以减少每次请求进行 gzip 压缩的 CPU 资源消耗. 该模块启用后, nginx 首先检查是否存在请求静态文件的 gz 结尾的文件, 如果有则直接返回该 gz 文件内容. 为了要兼容不支持 gzip 的浏览器, 启用 gzip_static 模块就必须同时保留原始静态文件和 gz 文件. 这样的话, 在有大量静态文件的情况下, 将会大大增加磁盘空间. 我们可以利用 nginx 的反向代理功能实现只保留 gz 文件.
可以 google"nginx gzip_static" 了解更多
gzip_comp_level 4
默认值: 1(建议选择为 4)
gzip 压缩比 / 压缩级别, 压缩级别 1-9, 级别越高压缩率越大, 当然压缩时间也就越长 (传输快但比较消耗 CPU).
gzip_buffers 4 16k
默认值: gzip_buffers 4 4k/8k
设置系统获取几个单位的缓存用于存储 gzip 的压缩结果数据流. 例如 4 4k 代表以 4k 为单位, 按照原始数据大小以 4k 为单位的 4 倍申请内存. 4 8k 代表以 8k 为单位, 按照原始数据大小以 8k 为单位的 4 倍申请内存.
如果没有设置, 默认值是申请跟原始数据相同大小的内存空间去存储 gzip 压缩结果.
gzip_types mime-type [mime-type ...]
默认值: gzip_types text/html (默认不对 JS/CSS 文件进行压缩)
压缩类型, 匹配 MIME 类型进行压缩
不能用通配符 text/*
(无论是否指定)text/HTML 默认已经压缩
设置哪压缩种文本文件可参考 conf/mime.types
gzip_min_length 1k
默认值: 0 , 不管页面多大都压缩
设置允许压缩的页面最小字节数, 页面字节数从 header 头中的 Content-Length 中进行获取.
建议设置成大于 1k 的字节数, 小于 1k 可能会越压越大. 即: gzip_min_length 1024
gzip_http_version 1.0|1.1
默认值: gzip_http_version 1.1(就是说对 HTTP/1.1 协议的请求才会进行 gzip 压缩)
识别 http 的协议版本. 由于早期的一些浏览器或者 http 客户端, 可能不支持 gzip 自解压, 用户就会看到乱码, 所以做一些判断还是有必要的.
注: 99.99% 的浏览器基本上都支持 gzip 解压了, 所以可以不用设这个值, 保持系统默认即可.
假设我们使用的是默认值 1.1, 如果我们使用了 proxy_pass 进行反向代理, 那么 nginx 和后端的 upstream server 之间是用 HTTP/1.0 协议通信的, 如果我们使用 nginx 通过反向代理做 Cache Server, 而且前端的 nginx 没有开启 gzip, 同时, 我们后端的 nginx 上没有设置 gzip_http_version 为 1.0, 那么 Cache 的 url 将不会进行 gzip 压缩
gzip_proxied [off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any] ...
默认值: off
Nginx 作为反向代理的时候启用, 开启或者关闭后端服务器返回的结果, 匹配的前提是后端服务器必须要返回包含 "Via" 的 header 头.
来源: http://www.bubuko.com/infodetail-3023950.html