Nginx 中启用 Gzip 压缩以优化网页加载速度

🏡作者主页:点击! 

Nginx-从零开始的服务器之旅专栏:点击!

🐧Linux高级管理防护和群集专栏:点击!

⏰️创作时间:2025年2月7日17点14分


目录

1. 配置网页压缩

目的

操作步骤

检查 gzip 模块是否启用

测试步骤

1. gzip on;

2. gzip_types

3. gzip_min_length

4. gzip_comp_level

总结


启用 Gzip 压缩是一种简单高效的优化方法,可以显著减少网页传输的数据量,从而提高网页加载速度。Nginx 提供了强大的 Gzip 模块支持,以下是配置 Gzip 压缩的详细步骤及测试方法,帮助你快速完成这一优化。

1. 配置网页压缩

目的

启用 Gzip 压缩,减少传输数据量,提高网页加载速度。


操作步骤

检查 gzip 模块是否启用

Nginx 的 gzip 功能依赖 ngx_http_gzip_module 模块。如果该模块未编译到 Nginx 中,则 gzip 功能无法使用。

  1. 检查是否启用了 gzip 模块:
bash
复制
nginx -V 2>&1 | grep gzip

如果输出中包含 --with-http_gzip_module,说明 gzip 模块已编译。如果没有,则需要重新编译 Nginx 并添加该模块。

  1. 如果需要重新编译 Nginx,可以参考以下步骤:
    • 下载 Nginx 源码包。
    • ./configure 时添加 --with-http_gzip_module 参数。
    • 重新编译并安装 Nginx。

  1. 编辑 Nginx 主配置文件:
vim /usr/local/nginx/conf/nginx.conf

http 块中添加以下内容:

http {
    ...
    gzip on;                       # 启用 Gzip 压缩
    gzip_types text/plain text/css application/json application/javascript application/xml+rss; # 压缩类型
    gzip_min_length 1024;          # 最小压缩大小
    gzip_comp_level 5;             # 压缩级别
    ...
}

  1. 测试配置文件语法:
nginx -t
  1. 重启 Nginx 服务:
systemctl restart nginx

测试步骤

  1. 使用 curl 测试 Gzip 压缩:
curl -I --compressed http://<your-nginx-ip>/

预期输出:响应头中包含以下字段:

Content-Encoding: gzip

补充扩展:

1. gzip on;

  • 作用:
    启用 Gzip 压缩功能。
  • 说明:
    这是开启 Gzip 压缩的核心指令。如果未添加此指令,Gzip 压缩功能不会生效。

2. gzip_types

  • 作用:
    指定哪些 MIME 类型的响应内容需要进行 Gzip 压缩。
  • 示例配置:
gzip_types text/plain text/css application/json application/javascript application/xml+rss;
  • 常见 MIME 类型:
    • text/plain:普通文本文件。
    • text/css:CSS 样式表文件。
    • application/json:JSON 格式数据。
    • application/javascript:JavaScript 文件。
    • application/xml+rss:RSS 格式文件。
  • 注意:
    默认情况下,text/html 类型总是会被压缩,无需显式指定。

3. gzip_min_length

  • 作用:
    设置允许压缩的响应内容的最小长度(单位:字节)。
  • 示例配置:
gzip_min_length 1024;
  • 说明:
    • 如果响应内容的大小小于指定的值(如 1024 字节),则不进行压缩。
    • 设置此值可以避免压缩小文件,因为小文件压缩后可能会导致额外的开销,反而增加传输时间。

4. gzip_comp_level

  • 作用:
    设置 Gzip 压缩的级别。
  • 示例配置:
gzip_comp_level 5;
  • 取值范围:1 到 9
    • 1:压缩速度最快,但压缩率较低。
    • 9:压缩率最高,但压缩速度较慢,消耗更多 CPU 资源。
  • 推荐值:
    一般建议设置为 45,在压缩率和性能之间取得平衡。

总结

通过启用 Gzip 压缩,Nginx 能够有效减少数据传输量,提升用户的网页加载体验。在实际应用中,可以根据具体业务需求调整压缩级别和压缩类型,以达到最佳效果。如果你有其他关于 Nginx 压缩优化的经验或问题,欢迎留言分享,让我们一起交流学习!

成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

神秘泣男子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/965878.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《云夹:高效便捷的书签管理利器》

在信息爆炸的时代&#xff0c;我们每天都会浏览大量的网页&#xff0c;遇到许多有价值的内容。如何高效地管理这些网页书签&#xff0c;以便随时快速访问&#xff0c;成为了一个重要的问题。云夹作为一款出色的书签管理工具&#xff0c;为我们提供了完美的解决方案。 强大的功能…

学习数据结构(6)链表OJ

1.移除链表元素 解法一&#xff1a;&#xff08;我的做法&#xff09;在遍历的同时移除&#xff0c;代码写法比较复杂 解法二&#xff1a;创建新的链表&#xff0c;遍历原链表&#xff0c;将非val的节点尾插到新链表&#xff0c;注意&#xff0c;如果原链表结尾是val节点需要将…

MongoDB开发规范

分级名称定义P0核心系统需7*24不间断运行&#xff0c;一旦发生不可用&#xff0c;会直接影响核心业务的连续性&#xff0c;或影响公司名誉、品牌、集团战略、营销计划等&#xff0c;可能会造成P0-P2级事故发生。P1次核心系统这些系统降级或不可用&#xff0c;会间接影响用户使用…

设计模式.

设计模式 一、介绍二、六大原则1、单一职责原则&#xff08;Single Responsibility Principle, SRP&#xff09;2、开闭原则&#xff08;Open-Closed Principle, OCP&#xff09;3、里氏替换原则&#xff08;Liskov Substitution Principle, LSP&#xff09;4、接口隔离原则&am…

STM32的HAL库开发-通用定时器输入捕获实验

一、通用定时器输入捕获部分框图介绍 1、捕获/比较通道的输入部分(通道1) 首先设置 TIM_CCMR1的CC1S[1:0]位&#xff0c;设置成01&#xff0c;那么IC1来自于TI1&#xff0c;也就是说连接到TI1FP1上边。设置成10&#xff0c;那个IC1来自于TI2&#xff0c;连接到TI2FP1上。设置成…

JavaScript 复习

文章目录 语法前置语法组成引入位置内部引入外部引入 基础语法输出变量变量声明规则变量赋值变量的作用范围 数据类型强制类型转换强转为 Number强转为 Boolean强转为 String强转为 整数 | 浮点数 运算符流程控制隐式转换函数常用内置对象String 对象Array 数组对象Math 数学对…

【C】链表算法题5 -- 相交链表

leetcode链接https://leetcode.cn/problems/intersection-of-two-linked-lists/description/https://leetcode.cn/problems/intersection-of-two-linked-lists/description/ 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节…

蓝桥杯准备 【入门3】循环结构

素数小算法&#xff08;埃氏筛&&欧拉筛&#xff09; 以下四段代码都是求20以内的所有素数 1.0版求素数 #include<iostream> using namespace std;int main() {int n 20;for(int i2;i<n;i){int j0;for(j2;j<i;j)//遍历i{if(i%j0){break;}}if(ij){cout&l…

寒假2.6--SQL注入之布尔盲注

知识点 原理&#xff1a;通过发送不同的SQL查询来观察应用程序的响应&#xff0c;进而判断查询的真假&#xff0c;并逐步推断出有用的信息 适用情况&#xff1a;一个界面存在注入&#xff0c;但是没有显示位&#xff0c;没有SQL语句执行错误信息&#xff0c;通常用于在无法直接…

Servlet笔记(下)

HttpServletRequest对象相关API 获取请求行信息相关(方式,请求的url,协议及版本) | API | 功能解释 | | ----------------------------- | ------------------------------ | | StringBuffer getRequestURL(); | 获取客户端…

QQ自动发送消息

QQ自动发送消息 python包导入 import time import pandas as pd import pyautogui import pyperclip图像识别函数封装 本程序使用pyautogui模块控制鼠标和键盘来实现QQ自动发送消息&#xff0c;因此必须得到需要点击位置的坐标&#xff08;当然也可以在程序中将位置写死&…

5.1计算机网络基本知识

5.1.1计算机网络概述 目前&#xff0c;三网融合(电信网络、有线电视网络和计算机网络)和宽带化是网络技术的发展的大方向&#xff0c;其应用广泛&#xff0c;遍及智能交通、环境保护、政府工作、公共安全、平安家居等多个领域&#xff0c;其中发展最快的并起到核心作用的则是计…

51单片机之冯·诺依曼结构

一、概述 8051系列单片机将作为控制应用最基本的内容集成在一个硅片上&#xff0c;其内部结构如图4-1所示。作为单一芯片的计算机&#xff0c;它的内部结构与一台计算机的主机非常相似。其中微处理器相当于计算机中的CPU&#xff0c;由运算器和控制器两个部分构成&#xff1b;…

13.PPT:诺贝尔奖【28】

目录 NO1234 NO567 NO8/9/10 NO11/12 NO1234 设计→变体→字体→自定义字体 SmartArt超链接新增加节 NO567 版式删除图片中的白色背景&#xff1a;选中图片→格式→删除背景→拖拉整个图片→保留更改插入→图表→散点图 &#xff1a;图表图例、网格线、坐标轴和图表标题…

RabbitMQ 从入门到精通:从工作模式到集群部署实战(一)

#作者&#xff1a;闫乾苓 文章目录 RabbitMQ简介RabbitMQ与VMware的关系架构工作流程RabbitMQ 队列工作模式及适用场景简单队列模式&#xff08;Simple Queue&#xff09;工作队列模式&#xff08;Work Queue&#xff09;发布/订阅模式&#xff08;Publish/Subscribe&#xff…

DFX(Design for eXcellence)架构设计全解析:理论、实战、案例与面试指南*

一、什么是 DFX &#xff1f;为什么重要&#xff1f; DFX&#xff08;Design for eXcellence&#xff0c;卓越设计&#xff09;是一种面向产品全生命周期的设计理念&#xff0c;旨在确保产品在设计阶段就具备**良好的制造性&#xff08;DFM&#xff09;、可测试性&#xff08;…

【Elasticsearch】diversified sampler

作用就是聚合前的采样&#xff0c;主要是采样 它就是用来采样的&#xff0c;采完样后在进行聚合操作 random_sampler和diversified_sampler是 Elasticsearch 中用于聚合查询的两种采样方法&#xff0c;它们的主要区别如下&#xff1a; 采样方式 • random_sampler&#xff1a…

2月7号.

二叉树是一种特殊的树形数据结构&#xff0c;具有以下特点&#xff1a; 基本定义 节点的度&#xff1a;二叉树中每个节点最多有两个子节点&#xff0c;分别称为左子节点和右子节点。 子树的顺序性&#xff1a;二叉树的子树有左右之分&#xff0c;且顺序不能颠倒。 递归定义&…

openpnp2.2 - 环境搭建 - 编译 + 调试 + 打包

文章目录 openpnp2.2 - 环境搭建 - 编译 调试 打包概述笔记前置任务克隆代码库切到最新的tag清理干净编译工程关掉旧工程打开已经克隆好的openpnp2.2工程将IDEA的SDK配置为openjdk23 切换中英文UI设置JAVA编译器 构建工程跑测试用例单步调试下断点导出工程的JAR包安装install…

【复现论文】DAVE

网站&#xff1a; GitHub - jerpelhan/DAVE 下载完以后&#xff0c;阅读 readme文件 新建终端&#xff0c;打印文件树&#xff0c;不包含隐藏文件&#xff1a; 命令&#xff1a;tree -I .* . ├── LICENSE ├── README.md ├── demo.py ├── demo_zero.py ├── mai…