当前位置: 首页 > news >正文

Nginx高级配置——gzip


Nginx 压缩功能简介

Nginx支持对指定类型的文件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文
件大小将比源文件显著变小,样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相
应的CPU资源
Nginx对文件的压缩功能是依赖于模块 ngx_http_gzip_module,默认是内置模块

1. 压缩的好处

启用压缩可以带来以下好处:

  • 减少带宽使用:通过压缩文件,可以显著减少数据传输量,降低带宽成本。
  • 提高页面加载速度:较小的数据量意味着更快的下载速度,从而提高了页面加载速度。
  • 改善用户体验:更快的页面加载速度可以提升用户的满意度。

2. 启用压缩

2.1 使用 gzip 压缩

Nginx 默认支持 gzip 压缩。要在 Nginx 中启用 gzip 压缩,你需要在配置文件中添加以下内容:

http {gzip on;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

这里的关键指令是 gzip on,它开启了 gzip 压缩。gzip_types 指令指定了哪些 MIME 类型的内容应该被压缩。

2.2 配置 gzip 设置

你可以进一步配置 gzip 压缩的细节。例如:

http {gzip on;gzip_vary on;gzip_proxied any;gzip_comp_level 6;gzip_buffers 16k 8k;gzip_http_version 1.1;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
  • gzip_vary:启用此选项可以告诉浏览器是否已启用 gzip 压缩。
  • gzip_proxied:指定何时对代理内容启用压缩。
  • gzip_comp_level:设置压缩级别(1 到 9)。
  • gzip_buffers:设置压缩缓冲区的大小。
  • gzip_http_version:指定 HTTP 版本。

3. 配置 gzip 压缩的注意事项

3.1 浏览器兼容性

确保客户端浏览器支持 gzip 压缩。大多数现代浏览器都支持 gzip 压缩。

3.2 不要压缩小文件

对于小于一定阈值的小文件,压缩可能会增加 CPU 负担,而不会带来明显的压缩效果。你可以通过以下设置排除小文件:

gzip_min_length 1024;

3.3 避免压缩已压缩的内容

对于已经被压缩的内容类型(如 JPEG 图像),不应再次压缩。可以通过以下设置排除这些类型:

gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

3.4 配置缓存

如果你使用了缓存,确保缓存中存储的是已压缩的内容。这可以通过以下设置实现:

gzip_vary on;

4. 静态文件的预压缩

除了动态生成的内容,你还可以预先压缩静态文件(如 HTML、CSS 和 JavaScript 文件)。这样可以减少服务器的 CPU 使用率。

4.1 使用 gzip 静态压缩

你可以在 Nginx 中启用 gzip 静态压缩,以自动处理静态文件的压缩:

http {gzip_static on;
}

4.2 手动预压缩静态文件

你也可以手动使用 gzip 命令预压缩静态文件,然后在 Nginx 中使用 alias 指令指向这些压缩文件。

例如,假设你的静态文件位于 /var/www/html,你可以使用以下命令压缩它们:

find /var/www/html -type f \( -name "*.html" -o -name "*.css" -o -name "*.js" \) -exec gzip -9 {} \;

然后在 Nginx 配置文件中,可以使用 alias 指令指向这些压缩文件:

location ~* ^.+\.(html|css|js)$ {alias /var/www/html;gzip_static on;
}

5. 最佳实践

5.1 监控性能

启用压缩后,定期检查服务器的 CPU 使用率和压缩效果,以确保压缩没有导致过多的 CPU 负担。

5.2 优化配置

根据服务器的实际负载和内容类型,调整 gzip_comp_levelgzip_buffers 的值以获得最佳性能。

5.3 使用 CDN

考虑使用 CDN(内容分发网络)来进一步加速静态内容的分发,并减轻服务器的负担。


http://www.mrgr.cn/news/3619.html

相关文章:

  • 一款基于BS的美食网站的设计与实现
  • 【Python开发实践】AI人机对战五子棋——程序调用及运行效果
  • kafka开启kerberos
  • 【代码随想录训练营第42期 Day32打卡 - 从零开始动态规划 - LeetCode 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
  • 0821作业+思维导图
  • 【Rust光年纪】从zlib到LZ4:探索Rust语言中的数据压缩和解压实现
  • 《图解设计模式》笔记(三)生成实例
  • 删除 Instagram 账户
  • Django后端架构开发:视图与模板的正确使用
  • QT中鼠标事件示例(包含点击,点击之后移动,释放的坐标获取)
  • ArcGIS 数据服务在三维 Cesium/SuperMap 项目中使用遇到的一些问题及其解决方法
  • Spring Boot解决循环注入问题
  • 【Leetcode 1346 】 检查整数及其两倍数是否存在—— 哈希表 战胜了 糟糕的双指针
  • 秘密指南!浮毛会危害人体健康吗?宠物空气净化器帮助解决危害
  • 05.震动控制继电器开关
  • 拓客工具,助你多维度筛选客源!
  • Redis系列之事务
  • 【云原生】MySQL的源码编译
  • 【微服务】微服务组件之Nacos注册中心和配置中心的使用
  • 语言基础/单向链表的构建和使用(含Linux中SLIST的解析和使用)