一 知识铺垫
① 网站gzip压缩
② gzip的压缩优缺点
二 指令学习
关注: '什么条件下'才会压缩'哪些请求'的响应?
① gzip
解读:'启用'或'禁用'响应的 gzip 压缩,总开关
场景:针对特定的'User-Agent'请求头决定是否用gzip'压缩'响应
⑧ gzip_types 重点
解读: 基于后端响应头的'Content-Type'的媒体类型,判断'是否'压缩
nginx中gzip_types是如何匹配content-type的
HTTP 协议中的 Content-Encoding 和 Transfer-Encoding(内容编码和传输编码)
细节点:可以将'变量'记录到日志格式中,看'是否压缩'
三 案例讲解
Accept-Encoding是'请求头',在'发送请求时告诉'服务器',我可以'解压'哪些格式压缩后的数据
1) 在'服务器(nginx)'中启用gzip压缩是'不够'的;
2) 客户端在发送'请求时候',携带 Accept-Encoding 请求头;
3) 现代'浏览器(不同的还有差异性)'会自动包含此标题;
4) 但对于curl '默认不压缩',您需要在命令中指定'--compressed'参数:
curl www.wzj.com/log.txt -I --compressed
四 最佳实践
# 1) '1m'作为压缩边界
gzip_min_length 1m;
# 2) 兼顾'性能'和'传输'效率
gzip_comp_level 5;
gzip_buffers 8 8m;
gzip_http_version 1.1;
# 3) IE5.5和IE6 SP1使用msie6参数来'禁止'gzip压缩
gzip_disable msie6;
# 4) 考虑'可读'性,每行写一个,最后用分号结束
gzip_types
text/plain
text/javascript
text/html;
如何引入: 在'http'级别下,通过 'include' gzip.conf 形式'加载'