Nginx中gzip配置

nginx中gzip压缩(节省带宽)
原理:
浏览器---请求----> 声明可以接受 gzip压缩 或 deflate压缩 或compress 或 sdch压缩
从http协议的角度看--请求头 声明 acceopt-encoding: gzip deflate sdch  (是指压缩算法,其中sdch是google倡导的一种压缩方式,目前支持的服务器尚不多)
服务器-->回应---把内容用gzip方式压缩---->发给浏览器
浏览<-----解码gzip-----接收gzip压缩内容----

官方文档 http://nginx.org/en/docs/http/ngx_http_gzip_module.html

gzip配置的常用参数
gzip on|off;  #是否开启gzip
gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
gzip_disable #正则匹配UA 什么样的Uri不进行gzip
gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在)
gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
gzip_proxied          # 设置请求者代理服务器,该如何缓存内容
gzip_types text/plain  application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css
gzip_vary on|off  # 是否传输gzip压缩标志

注意: 
图片/mp3这样的二进制文件,不必压缩
因为压缩率比较小, 比如100->80字节,而且压缩也是耗费CPU资源的,比较小的文件不必压缩

nginx中的expires缓存(缓存在浏览器中 提高网站性能)
使用场景:对于网站的图片,尤其是新闻站, 图片一旦发布, 改动的可能是非常小的.我们希望 能否在用户访问一次后, 图片缓存在用户的浏览器端,且时间比较长的缓存.
列如:缓存一个小时
location ~.\.(jpg|png|jpeg|gif){
     expires 1d;
}
(注意:服务器的日期要准确,如果服务器的日期落后于实际日期,可能导致缓存失效)
304 也是一种很好的缓存手段
原理是: 服务器响应文件内容是,同时响应etag标签(内容的签名,内容一变,他也变), 和 last_modified_since 2个标签值浏览器下次去请求时,头信息发送这两个标签, 服务器检测文件有没有发生变化,如无,直接头信息返回 etag,last_modified_since浏览器知道内容无改变,于是直接调用本地缓存.
这个过程,也请求了服务器,但是传着的内容极少.
对于变化周期较短的,如静态html,js,css,比较适于用这个方式


<think>好的,用户想了解如何在Nginx配置Gzip压缩。我之前回答过类似的问题,但需要根据提供的引用内容来组织答案。首先,我需要确认用户的需求是配置Gzip压缩,包括启用、优化和相关参数。 根据引用内容,引用[1]提到了启用Gzip的基本配置,包括gzip on和gzip_types,还有压缩级别gzip_comp_level。引用[2]提到了gunzip功能,虽然用户可能暂时不需要,但可以作为补充信息。引用[3]详细说明了Gzip的工作原理和步骤,包括配置文件的路径和常用参数。 我需要将这些信息整合成一个结构清晰的回答。首先,应该分步骤说明如何配置,比如启用Gzip、设置压缩类型、调整压缩级别等。同时,需要提到验证配置和注意事项,比如不要压缩已压缩的文件,以及压缩级别对CPU的影响。 还需要生成相关问题,可能涉及优化方法、参数调优、与CDN的配合等。确保回答中使用正确的LaTeX格式,比如变量用$...$,但根据用户提供的示例,似乎数学公式的例子可能不需要,但需要检查是否有必要的地方使用。不过当前问题主要涉及配置指令,可能数学公式较少,但要注意用户提到的系统级指令中的格式要求。 需要检查是否有遗漏的重要参数,比如gzip_min_length、gzip_vary等,引用中提到的内容是否需要包含。引用[3]提到gzip_types需要明确指定,而默认可能只压缩text/html,所以需要强调添加其他MIME类型。 最后,确保回答中使用中文,代码块正确,引用标识正确添加。例如,在提到压缩级别时添加[^1],在解压功能处添加[^2],在启用步骤引用[^3]。 总结步骤: 1. 启用Gzipgzip on; 2. 配置压缩类型:gzip_types 3. 设置压缩级别:gzip_comp_level 4. 其他参数:gzip_min_length、gzip_vary、gzip_proxied 5. 验证和重载配置 6. 注意事项和优化建议 相关问题可以包括如何验证是否生效、优化压缩效果、解决CPU负载问题等。</think>### 如何在Nginx配置Gzip压缩 #### 1. 启用Gzip压缩模块 在Nginx配置文件中(通常为`nginx.conf`或站点配置文件)添加以下基础配置: ```nginx http { gzip on; # 启用Gzip压缩[^1][^3] gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 指定压缩的文件类型[^3] } ``` #### 2. 配置压缩参数 根据需求调整压缩级别和其他优化参数: ```nginx http { gzip_comp_level 6; # 压缩级别(1-9,数值越大压缩率越高但CPU消耗越大)[^1] gzip_min_length 1024; # 仅压缩大于1KB的文件 gzip_vary on; # 添加Vary头,兼容不支持压缩的客户端[^3] gzip_proxied any; # 对代理请求也启用压缩 } ``` #### 3. 验证配置并重载服务 ```bash nginx -t # 检查配置语法 nginx -s reload # 重载配置使生效 ``` #### 4. 验证压缩效果 通过浏览器开发者工具查看响应头,若包含`Content-Encoding: gzip`则表示配置成功。 #### 注意事项 - 避免重复压缩:图片、视频等已压缩文件无需再次压缩[^3] - 压缩级别推荐:通常设为5-6,平衡压缩率与性能[^1] - 动态内容压缩:需确保后端服务未压缩响应,或启用`gunzip on`解压功能[^2] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值