Nginx conf 配置 gzip 资源压缩

本文详细介绍了Nginx服务器中gzip模块的配置,包括如何开启压缩、设置压缩级别、指定压缩类型和禁用规则等。通过正确配置,可以有效减少资源传输大小,提升网页加载速度。同时,文章提供了验证gzip是否正常工作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不多说上代码:

gzip on;
gzip_min_length 100k;
gzip_comp_level 6;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/bmp application/x-bmp image/x-ms-bmp application/vnd.ms-fontobject font/ttf font/opentype font/x-woff;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
gzip_buffers 32 4k;
gzip_http_version 1.1;

代码表述:

开启gzip资源压缩,超过100k开始压缩,压缩级别为6,压缩的资源类型 有js、css等等,gzip_vary on;会在请求头部加上Vary:Accept-Encoding,IE1-6不压缩,缓冲区大小 以4k 为单位32倍内存空间,在http/1.1的协议下不开启gzip压缩

验证是否成功

1 显示gzip表示成功

2 表示资源总大小

3 表示资源压缩后大小

4 如果你的页面没有效果可以看看是不是没有禁用缓存

以下是每个参数详解有兴趣可以看看

gzip_buffers 32 4K| 16 8K #设置用于处理请求压缩的缓冲区数量和大小。比如32 4K表示按照内存页(one memory page)大小以4K为单位(即一个系统中内存页为4K),申请32倍的内存空间。建议此项不设置,使用默认值。

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 # 设置请求者代理服务器,该如何缓存内容

Nginx做为反向代理的时候启用:

  • off – 关闭所有的代理结果数据压缩
  • expired – 如果header中包含”Expires”头信息,启用压缩
  • no-cache – 如果header中包含”Cache-Control:no-cache”头信息,启用压缩
  • no-store – 如果header中包含”Cache-Control:no-store”头信息,启用压缩
  • private – 如果header中包含”Cache-Control:private”头信息,启用压缩
  • no_last_modified – 启用压缩,如果header中包含”Last_Modified”头信息,启用压缩
  • no_etag – 启用压缩,如果header中包含“ETag”头信息,启用压缩
  • auth – 启用压缩,如果header中包含“Authorization”头信息,启用压缩
  • any – 无条件压缩所有结果数据

gzip_types text/plain application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css

gzip_vary on|off # 是否传输gzip压缩标志

转自或参考博文:https://www.cnblogs.com/Renyi-Fan/p/11047490.html

 

Nginx 中启用 Gzip 压缩可以显著减少传输数据量,提高网页加载速度。以下是配置 Nginx 启用 Gzip 压缩的详细步骤和相关参数说明: ### 启用 Gzip 压缩的基本配置Nginx配置文件中(通常是 `/etc/nginx/nginx.conf` 或 `/etc/nginx/sites-available/default`),可以在 `http` 或 `server` 上下文中添加以下指令来启用 Gzip 压缩: ```nginx server { gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_min_length 1000; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_proxied any; gzip_vary on; } ``` - **gzip on;**:启用 Gzip 压缩功能[^1]。 - **gzip_types**:指定需要压缩的 MIME 类型。默认情况下,Nginx压缩 `text/html` 类型的内容,建议扩展到其他常见类型如 CSS、JavaScript 等。 - **gzip_min_length**:设置最小压缩文件大小,单位为字节。较小的文件可能不会带来显著的压缩效果,反而会增加 CPU 开销。 - **gzip_comp_level**:设置压缩级别,范围是 1~9,数值越高压缩率越高,但也会增加 CPU 使用率,默认值为 6。 - **gzip_buffers**:设置压缩缓冲区大小。例如 `16 8k` 表示使用 16 个 8KB 的缓冲区。 - **gzip_http_version**:设置用于压缩的 HTTP 协议版本,默认为 `1.1`。 - **gzip_proxied**:控制是否对代理请求启用压缩。设置为 `any` 表示无论请求来源如何都启用压缩。 - **gzip_vary**:开启后会在响应头中添加 `Vary: Accept-Encoding`,帮助缓存服务器识别是否支持 Gzip 压缩的内容。 ### 验证 Gzip 是否生效 可以通过以下方式验证 Gzip 是否成功启用: 1. **使用浏览器开发者工具**: 打开浏览器的开发者工具(F12),切换到“Network”标签页,选择任意资源查看其响应头是否有 `Content-Encoding: gzip`。 2. **使用命令行工具**: ```bash curl -I --compressed http://yourdomain.com/yourfile.txt ``` 如果返回头中包含 `Content-Encoding: gzip`,则表示 Gzip 已生效。 3. **使用在线工具**: 可以访问 [https://checkgzipcompression.com](https://checkgzipcompression.com) 等网站输入你的 URL 进行检测。 ### 性能优化建议 - **压缩级别**:通常建议将 `gzip_comp_level` 设置为 6,这是压缩效率与性能之间的良好平衡。 - **压缩内容类型**:确保 `gzip_types` 包含所有常见的文本类资源,避免遗漏 JavaScript 或 CSS 文件。 - **排除已压缩文件**:对于已经压缩过的文件(如 `.jpg`, `.png` 等图像文件),不需要再进行 Gzip 压缩,可以结合 `location` 块禁用压缩处理。 ### 示例:完整配置片段 ```nginx server { listen 80; server_name example.com; gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_min_length 1000; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_proxied any; gzip_vary on; location / { root /var/www/html; index index.html; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱钓鱼的程序员小郭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值