Nginx的Gzip压缩功能

Nginx的Gzip压缩功能

Gzip模块支持的配置指令

ngx_http_gzip_module模块

ngx_http_gzip_module模块主要负责Gzip功能的开启和设置,对响应数据进行在线实时压缩。

指令 作用
gzip on |off on=启用Gzip功能,off=不启用Gzip功能
gzip_buffers number size Gzip压缩文件使用缓存空间的大小,number=Nginx向服务器申请缓存空间的个数,size=每个缓存空间的大小,如:gzip_buffer 8 16k,总大小为128k(number * size)
gzip_comp_level 1 ~ 9 Gzip压缩级别,1级为压缩程度最低,压缩效率最高,最省时,9级为压缩程度最高,压缩效率最低,最耗时,以次类推
gzip_disable regex 针对不同客户端(根据User-Agent识别)发起的请求时,不使用Gzip功能,regex=正则表达式,如:gzip_disable MSIE [4-6]\.(当匹配到UA中包含MSIE 4、MSIE 5、MSIE 6时不使用Gzip功能)
gzip_http_version 1.0 | 1.1 默认为1.1,即只有客户端使用1.1及以上版本的HTTP协议时,才使用Gzip功能
gzip_min_length length Gzip压缩大小最小值,默认值为20,如:gzip_min_length 1024,也就是最小1k才压缩
gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any 该指令只有在使用Nginx的反向代理时才生效,前提是后端服务器返回的头部中,Request部分包含用于通知代理服务器的Via头域。expired=返回头部中带有expired头域时,启用对响应数据的Gzip压缩,no-cache=返回头部中Cache-Control头域的值为no-cache时,启用对响应数据的Gzip压缩,no-store=返回头部中Cache-Control头域的值为no-store时,启用对响应数据的Gzip压缩,private=返回头部中Cache-Control头域的值为private时,启用对响应数据的Gzip压缩,no_last_modified=返回头部中带有Last-Modified头域时,启用对响应数据的Gzip压缩,no_etag=返回头部中带有Etag头域时,启用对响应数据的Gzip压缩,auth=返回头部中带有Authorization头域时,启用对响应数据的Gzip压缩,any=无条件启用对响应数据的Gzip压缩
gzip_types mime-type 根据MIME类型选择性开启Gzip压缩功能,mime-type=MIME类型,如:gzip_types text/html text/css application/x-javascript,针对这三个类型进行Gzip压缩
gzip_vary on | off 使用Gzip压缩时是否发送带有"Vary: Accept-Encoding"头域的响应头部,这样对不支持Gzip压缩的客户端浏览器非常有用,默认值为off,事实上还可以通过Nginx自带的add_header Vary Accept-Encoding gzip来达到同样的效果

ngx_http_gzip_static_module

ngx_http_gzip_static_module模块主要负责搜索和发送经过Gzip功能预压缩的数据。

注意:使用该模块需要在Nginx安装时添加--with-http_gzip_static_module

指令 作用
gzip_static on | off | always 用于开启和关闭该模块的功能,on=开启该模块,off=关闭该模块,always=一直发送Gzip预压缩文件,而不检查客户端支不支持Gzip压缩功能
gzip_proxied expired | no-cache | no-store | private | auth 作用跟上面的那个一模一样。

ngx_http_gunzip_module

ngx_http_gunzip_module模块针对不支持Gzip压缩功能的客户端,对不支持Gzip压缩功能的客户端会进行解压处理,再发送给客户端。

注意:使用该模块需要在Nginx安装时添加--with-http_gunzip_module

指令 作用
gunzip_static on | off 用于开启或关闭该模块,默认为关闭状态,on=开启该模块,off=关闭该模块
gunzip_buffers number size Nginx对Gzip数据解压时需向系统申请number * size大小的空间大小,number=Nginx向服务器申请的缓存空间数量,size=每个缓存空间的大小
Gzip压缩功能的使用
vim /usr/local/nginx/conf/nginx.conf
添加:
http	#在http块中添加下面指令
{
    gzip on;					#开启gzip功能
    gzip_min_length 1024;		#gzip最小压缩大小
    gzip_buffers 8 16k;			#gzip缓存大小
    gzip_comp_level 3;			#gzip压缩等级
    gzip_types text/plain text/html text/css application/x-javascript application/xml;		#gzip压缩文件格式
    gzip_vary on;				#启用压缩标识
    gunzip_static on;			#启用gunzip功能
}
#当有多个虚拟主机时,可以对某一个虚拟主机不使用gzip功能
server	#在某个虚拟主机中添加下面指令
{
    gzip off;
}

猜你喜欢

转载自blog.csdn.net/qq_42279077/article/details/105942723