Nginx 配置:gzip动态压缩、静态压缩

news2024/12/28 21:57:01

动态压缩

动态压缩开启的现象

Nginx配置

http {
    # 启用 gzip 压缩
    gzip on;

    # 设置 gzip 压缩级别,范围是1-9,数字越大压缩率越高但CPU消耗也越大
    gzip_comp_level 5;

    # 设置最低压缩的文件大小(大于1KB的文件才进行压缩)
    gzip_min_length 1024;

    # 压缩的缓冲区大小
    gzip_buffers 16 8k;

    # 启用对不同版本的HTTP协议的gzip支持
    gzip_http_version 1.1;

    # 启用或禁用gzip_vary header
    gzip_vary on;

    # 设置压缩的文件类型
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    # 禁用对IE6进行gzip压缩
    gzip_disable "msie6";
    
    # 启用对所有响应进行gzip压缩
    gzip_proxied any;
}

gzip_static

  • on:  当设置成on的时候,回去检查客户端,如果客户端不支持gzip,那么就不会发送压缩包。 
  • off:关闭gzip功能。
  • always:不管客户端支持或不支持,都进行发送压缩包

浏览器是否支持

如果浏览器支持gzip压缩,"Accept-Encoding" 字段中会包含"gzip"或者"deflate"等关键字。这就意味着浏览器支持使用gzip进行数据压缩。

如果浏览器不支持,"Accept-Encoding"字段将不包含任何相关的关键字。

判断gzip 动态压缩是否生效

命令行查看压缩效果
### 结果有返回 Content-Encoding: gzip 表示OK
 curl  -H "Accept-Encoding: gzip" -I https://www.baidu.com/index.html


##
[root@shanghai-me ~]# curl  -H "Accept-Encoding: gzip" -I https://www.diglaws.com/head.js
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 02 Jun 2024 03:41:15 GMT
Content-Type: application/javascript; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
vary: Origin
x-ratelimit-limit: 600
x-ratelimit-remaining: 599
x-ratelimit-reset: 60
cache-control: public, max-age=0
last-modified: Sat, 01 Jun 2024 22:37:55 GMT
etag: W/"57e-18fd5f3c9b8"
X-Cache: MISS
Content-Encoding: gzip

两者对比

是否是静态压缩还是动态压缩直接看Etag这一项就行了。Etag中只有简单字符表示静态资源加载,而前面带 W/ 表示启动了在线压缩

● 静态压缩

是先把js、css等文件压缩为.gz文件,客户端访问时会自动下载.gz文件,并在客户端自动解压后访问。

● 动态压缩

客户端发起请求时,nginx动态将js、css文件压缩后返回给客户端,客户端收到后自动解压并访问。

静态压缩

##
https://blog.csdn.net/weixin_39084623/article/details/135032148

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux进程篇】Linux进程管理应用——虚假的shell脚本

W...Y的主页 😊 代码仓库分享💕 前言:我们已经了解了进程的工作原理,并且学习了进程创建、进程终止、进程等待以及进程程序替换。为了更好的巩固这些知识,我们可以创建一个简易的shell命令行。 目录 做一个简易的s…

【DevOps】网站安全案例分析:真实事件中的经验与教训

目录 一、常见的网站安全事故案例 1. Equifax 数据泄露事件(2017年) 2. WannaCry 勒索软件攻击事件(2017年) 3. GitHub DDoS 攻击事件(2018年) 二、网站安全事件的一般分析方法 1、事件背景调查 2、…

09-spring的bean创建流程(一)

文章目录 spring中bean的创建流程finishBeanFactoryInitialization(beanFactory)beanFactory.preInstantiateSingletons();getMergedLocalBeanDefinition(beanName);流程实现FactoryBean接口,里面的对象实例化过程 spring中bean的创建流程 finishBeanFactoryInitialization(be…

14-ShardingSphere的分布式主键实现

1 ShardingSphere自动生成键 MySQL自增键、Oracle自增序列等。分片场景下问题就复杂了,不能依靠单实例上的自增键来实现不同数据节点之间的全局唯一主键,分布式主键的需求应运而生。ShardingSphere 作为一款优秀分库分表开源软件,同样提供分…

Ubuntu18.04安装pwntools报错解决方案

报错1:ModuleNotFoundError: No module named ‘setuptools_rust’ 报错信息显示ModuleNotFoundError: No module named setuptools_rust,如下图所示 解决方案:pip install setuptools_rust 报错2:pip版本低 解决方案&#xff…

【Test 49 】OSI 七层模型初识、网络传输的流程、IP地址和MAC地址! 面试高频考点!

文章目录 1. OSI七层模型2. TCP/IP五层(或四层)模型3. 网络传输基本流程 🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧&#…

MyBatis中的接口代理机制及其使用

1. MyBatis中的接口代理机制及其使用 文章目录 1. MyBatis中的接口代理机制及其使用2. 实操2.1 准备工作2.2 insert 增加操作2.3 delete 删除操作2.4 update 修改操作2.5 select 查询一条记录操作2.6 select 查询多条记录操作 3. 总结:4. 最后: MyBatis …

五、数据源池化技术实现

学这一节的时候重新梳理了DataSource、DriverManager、Driver、DriverProxy、Connection之间的关系,如下图 在整体流程中,这一块就是通过配置文件配置,在解析配置文件的时候就创建对应的数据源封装到Environment中,在执行sql的时…

使用Qt对word文档进行读写

目录 开发环境原理使用的QT库搭建开发环境准备word模板测试用例结果Gitee地址 开发环境 vs2022 Qt 5.9.1 msvc2017_x64,在文章最后提供了源码。 原理 Qt对于word文档的操作都是在书签位置进行插入文本、图片或表格的操作。 使用的QT库 除了基本的gui、core、…

3072. 将元素分配到两个数组中 II

题目 给你一个下标从 1 开始、长度为 n 的整数数组 nums 。 现定义函数 greaterCount ,使得 greaterCount(arr, val) 返回数组 arr 中 严格大于 val 的元素数量。 你需要使用 n 次操作,将 nums 的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操…

【调试笔记-20240604-Linux-为 OpenWrt LuCI 界面添加多语言支持】

调试笔记-系列文章目录 调试笔记-20240604-Linux-为 OpenWrt LuCI 界面添加多语言支持 文章目录 调试笔记-系列文章目录调试笔记-20240604-Linux-为 OpenWrt LuCI 界面添加多语言支持 前言一、调试环境操作系统:Ubuntu 22.04.4 LTS编译环境调试目标 二、调试步骤预…

vue-pdf 部分中文显示错误,第二次打开是空白,解决方法

首先鸣谢 1. https://blog.csdn.net/m0_71537867/article/details/131614868?spm1001.2014.3001.5506 2. https://blog.csdn.net/weixin_43763952/article/details/133769647 3. https://github.com/FranckFreiburger/vue-pdf/issues/229 4. https://blog.csdn.net/weixin_449…

Java中常用的单目运算符及用法详解

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

【Linux多线程】线程的终止、等待和分离

文章目录 线程终止正常退出return 退出pthread_exit函数终止线程 pthread_cancel强制终止线程进程终止 线程等待为什么需要等待线程?pthread_join函数 分离线程pthread_detach函数 线程终止 下面给出终止线程的三种方式: 正常退出: 线程执行…

【Flask-项目运行】解决用本机IP访问不到flask项目而用localhost可以访问到的问题

文章目录 一、问题描述二、解决办法 一、问题描述 使用 localhost 或 127.0.0.1 能访问到项目: 但是使用局域网 IP 访问不到: 二、解决办法 只需要在 app.py 中修改一行代码: run方法添加 host 参数指明全部 ip 可访问。

【Linux】(四)—— 文件权限管理

权限管理 这篇文章主要时对前篇文章中的用户和文件的权限操作做一些补充说明 用户权限: sudo:临时提升权限为root;sudo -s:永久提升权限为root。 ls -l显示的文件列表的第一列表示文件类型,第一个字母为-表示普通文…

wps:基本使用【笔记】

wps:基本使用【笔记】 前言版权推荐wps:基本使用如何去除复制文本的样式显示空格、换行、分节符快捷键设置字体添加章节添加奇数页分节符设置页边距设置页眉页脚设置页码 最后 前言 2024-6-5 23:10:12 以下内容源自《【笔记】》 仅供学习交流使用 版权…

vue3中的ref与reactive的区别

这里写自定义目录标题 1、两者的区别2、用法3、vue3中声明的数组/对象3.1 通过reactive 声明的Array/Object,需要重新分配一个全新的对象,会出错、或失去响应式效果 3.2 解决方案 4、cosnt 说明5、Proxy 与 defineProperty 1、两者的区别 ref&#xff1…

13- Redis 中的 压缩列表 数据结构

压缩列表的最大特点,就是它被设计成一种内存紧凑型的数据结构,占用 一块连续的内存空间,不仅可以利用 CPU 缓存,而且会针对不同长度的数据,进行相应编码,这种方法可以有效的节省内存开销。 但是&#xff0…

R语言探索与分析20-北京市气温预测分析

一、序言 近年来,人类大量燃烧煤炭、天然气等含碳燃料导致温室气 体过度排放,大量温室气体强烈吸收地面辐射中的红外线,造 成温室效应不断累积,使得地球温度上升,造成全球气候变暖。气象温度的预测一直以来都是天气预…