前言
为提高用户获取响应数据的速度,Nginx服务器可以将响应数据进行gzip压缩,在减小响应数据的大小后再发送给用户端浏览器。
要想启用gzip压缩,需要浏览器支持gzip压缩功能,目前大多数浏览器都支持gzip压缩数据的显示。
配置参数
参数名 | 作用域 | 默认值 | 可选项 | 参数说明 |
gzip | http、server、location | off | on、off | 启用gzip功能 |
gzip_buffers | http、server、location | 32 4k或16 8k | 设置gzip压缩缓冲区 | |
gzip_comp_level | http、server、location | 1 | 1~9 | 压缩等级,值越大,压缩程度越高,越消耗cpu |
gzip_disable | http、server、location | 关闭gzip压缩 | ||
gzip_http_version | http、server、location | 1.1 | 1.0、1.1 | 设置压缩请求的最早http版本 |
gzip_min_length | http、server、location | 20 | 设置启用gzip压缩的最小数据长度 | |
gzip_proxied | http、server、location | off | 根据被代理服务器返回响应头判断是否启用gzip压缩 | |
gzip_types | http、server、location | text/html | 设置可压缩的MIME类型 | |
gzip_vary | http、server、location | off | on、off | 在响应头中添加Vary标记,避免数据发给不支持压缩的浏览器 |
gunzip | http、server、location | off | on、off | 动态解压 |
gunzip_buffers | http、server、location | 32 4k | 设置用于解压的缓冲区大小 | |
gzip_static | http、server、location | off | on、always、off | 启用压缩数据读取功能。设置always可始终发送gzip数据 |
示例
# 始终发送静态的gzip压缩数据 gzip_static always; # 若客户端浏览器不支持gzip压缩数据,则解压后再发送 gunzip on; gunzip_buffers 16 8k; # 当被代理的服务器符合条件时,对响应数据启用gzip压缩 gzip_proxied expired no-cache no-store private auth; gzip on; # 响应数据超过1KB时启用gzip压缩 gzip_min_length 1k; 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;