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

Nginx(资源压缩)

建立在动静分离的基础之上,如果一个静态资源的Size越小,那么自然传输速度会更快,同时也会更节省带宽,因此我们在部署项目时,也可以通过Nginx对于静态资源实现压缩传输,一方面可以节省带宽资源,第二方面也可以加快响应速度并提升系统整体吞吐。

Nginx也提供了三个支持资源压缩的模块ngx_http_gzip_module、ngx_http_gzip_static_module、ngx_http_gunzip_module,其中ngx_http_gzip_module属于内置模块,代表着可以直接使用该模块下的一些压缩指令,后续的资源压缩操作都基于该模块,先来看看压缩配置的一些参数/指令:

参数项释义参数值
gzip开启或关闭压缩机制on/off
gzip_types根据文件类型选择性开启压缩机制image/png、text/css ...
gzip_comp_level用于设置压缩机别,级别越高越耗时1~9(越高压缩效果越好)
gzip_vary设置是否携带Vary:Accept-Encoding头域的相应头部on/off
gzip_buffers设置处理压缩请求的缓冲区数量和大小数量大小,如16 8k
gzip_disable针对不同客户端的请求来设置是否开启压缩如.*Chrome.*
gzip_http_version指定压缩相应所需要的最低HTTP请求版本如1.1
gzip_min_length设置触发压缩的文件最低大小如512k
gzip_proxied对于后端服务器的相应结果是否开启压缩off、expired、no-cache

了解了Nginx中的基本压缩配置后,接下来可以在Nginx中简单配置一下:

vi /usr/local/nginx/conf/nginx.conf

http{# 开启压缩机制gzip on;# 指定会被压缩的文件类型(也可自己配置其他类型)gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png;# 设置压缩级别,越高资源消耗越大,但压缩效果越好gzip_comp_level 5;# 在头部中添加Vary: Accept-Encoding(建议开启)gzip_vary on;# 处理压缩请求的缓冲区数量和大小gzip_buffers 16 8k;# 对于不支持压缩功能的客户端请求不开启压缩机制gzip_disable "MSIE [1-6]\."; # 低版本的IE浏览器不支持压缩# 设置压缩响应所支持的HTTP最低版本gzip_http_version 1.1;# 设置触发压缩的最小阈值gzip_min_length 2k;# 关闭对后端服务器的响应结果进行压缩gzip_proxied off;
}

在上述的压缩配置中,最后一个gzip_proxied选项,可以根据系统的实际情况决定,总共存在多种选项:

  • off:关闭Nginx对后台服务器的响应结果进行压缩。

  • expired:如果响应头中包含Expires信息,则开启压缩。

  • no-cache:如果响应头中包含Cache-Control:no-cache信息,则开启压缩。

  • no-store:如果响应头中包含Cache-Control:no-store信息,则开启压缩。

  • private:如果响应头中包含Cache-Control:private信息,则开启压缩。

  • no_last_modified:如果响应头中不包含Last-Modified信息,则开启压缩。

  • no_etag:如果响应头中不包含ETag信息,则开启压缩。

  • auth:如果响应头中包含Authorization信息,则开启压缩。

  • any:无条件对后端的响应结果开启压缩机制。

分别来对比下压缩前后的区别:

从图中可以很明显看出,未开启压缩机制前访问时,color.html文件的响应时间为8ms,当配置好压缩后再重启Nginx,会发现文件大小从8ms→4ms,效果立竿见影!

注意点:①对于图片、视频类型的数据,会默认开启压缩机制,因此一般无需再次开启压缩。②对于.js文件而言,需要指定压缩类型为application/javascript,而并非text/javascript、application/x-javascript

相关文章:

Nginx(资源压缩)

建立在动静分离的基础之上,如果一个静态资源的Size越小,那么自然传输速度会更快,同时也会更节省带宽,因此我们在部署项目时,也可以通过Nginx对于静态资源实现压缩传输,一方面可以节省带宽资源,第…...

数据结构与算法之二叉树: LeetCode 226. 翻转二叉树 (Typescript版)

翻转二叉树 https://leetcode.cn/problems/invert-binary-tree/ 描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1 4 4/ \ / \2 7 >…...

lightdb-ignore_row_on_dupkey_index

LightDB 支持 ignore_row_on_dupkey_index hint LightDB 从23.4 开始支持oracle的 ignore_row_on_dupkey_index hint, 这个hint是用来忽略唯一键冲突的。类似与mysql的 insert ignore。 语法如下: 在LightDB中ignore_row_on_dupkey_index的效果等同于o…...

wangeditor实时预览

<template><div><!--挂载富文本编辑器--><div style"width: 45%;float: left;margin-left: 2%"><p>编辑内容</p><div id"editor" style"height: 100%"></div></div><div style"w…...

【前沿技术了解】web图形Canvas、svg、WebGL、数据可视化引擎的技术选型

目录 Canvas&#xff1a;HTML5新增 Canvas标签&#xff08;画布&#xff09; 渲染上下文canvas.getContext(contextType[, contextAttributes]) 上下文类型&#xff08;contextType&#xff09; 上下文属性 (contextAttributes) 示例 动画 setInterval(function, delay)…...

【Java】循环语句练习

文章目录 1. 计算5的阶乘2. 计算 1! 2! 3! 4! 5!3. 数字9 出现的次数4. 判定素数5. 求1-100之间的素数6. 求2个整数的最大公约数7. 计算分数的值8. 模拟登陆9. 输出乘法口诀表10. 求出0&#xff5e;999之间的所有“水仙花数”并输出11. 猜数字游戏&#x1f648; 1. 计算5的…...

「Verilog学习笔记」非整数倍数据位宽转换24to128

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 要实现24bit数据至128bit数据的位宽转换&#xff0c;必须要用寄存器将先到达的数据进行缓存。24bit数据至128bit数据&#xff0c;相当于5个输入数据第6个输入数据的拼接成一…...

2023亚太地区数学建模C题思路模型代码论文

C题的参考思路: 1&#xff0c;问题1的思路: 确定研究问题的主要指标体系(新能源电车的售出数量、安全性指标、充电桩数目、电池续 航里程等)&#xff0c;收集指标的对应数据&#xff0c;检验数据是否服从正态性: 若服从正态分布: 0&#xff0c;可考虑优先采用“多元方差分析”模…...

苹果商城App上架指南在中发里查看

苹果商城App上架指引可以在app应用分发平台网站上查看。具体步骤如下&#xff1a; 登录苹果开发者网站。进入“Certificates, Identifiers & Profiles”选项。在页面左侧选择“App Store Connect”。点击“App Store Connect”页面顶部的“Developer Guide”。在左侧菜单中…...

Android 框架层AIDL 添加接口

文章目录 AIDL的原理构建AIDL的流程往冻结的AIDL中加接口 AIDL的原理 可以利用ALDL定义客户端与服务均认可的编程接口&#xff0c;以便二者使用进程间通信 (IPC) 进行相互通信。在 Android 中&#xff0c;一个进程通常无法访问另一个进程的内存。因此&#xff0c;为进行通信&a…...

ubuntu命令行下中文乱码怎么解决

大家好,今天来介绍ubuntu命令行中文乱码怎么解决(ubuntu中文文件名乱码)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧! ubuntu命令行下中文乱码怎么解决 我也呀见过这个问题 一. Ubuntu默认的中文字符编码 Ubuntu默认的中文字谈码符编码为zh_CN.UT…...

沈阳陪诊系统|陪诊软件开发功能

陪诊小程序的出现它可以帮助患者或家属解决就医过程中的各种问题。根据数据显示&#xff0c;2021年中国陪诊市场规模约为36.7亿元&#xff0c;预计到2025年将达到100亿元。同时&#xff0c;在医疗行业数字化转型的大背景下&#xff0c;陪诊微信小程序作为一种创新的医疗服务模式…...

Element-Plus 表格 el-table 如何支持分页多选

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…...

网站被流量攻击了,该怎么处理

几乎每个网站都面临被攻击或者入侵的风险&#xff0c;无论是简单的博客论坛、投资平台、小型的独立电商网站还是动态电子商务平台都有被攻击的情况出现,只是或大或小,或多或少罢了 为什么网站会被攻击&#xff1f;黑客如何来入侵这些网站&#xff1f;如何才能有效保护我的网站不…...

配置特定 IP 地址走指定网关

公司有两个日常上网用的路由器&#xff0c;分别接不同的两条网线&#xff0c;虽然都是电信的&#xff0c;但是一条偶尔会抽风&#xff0c;我的 VPS 会连不上&#xff0c;也就是挂在上面的 SS 无法使用。恰好这根线是公司接台式机的&#xff0c;也就是说平时上班偶尔会无法科学上…...

Linux的基本指令(四)

目录 前言 时间相关的指令 date指令 时间戳 日志 时间戳转化为具体的时间 cal指令 find指令&#xff08;十分重要&#xff09; grep指令&#xff08;行文本过滤工具&#xff09; 学前补充 什么是打包和压缩&#xff1f; 为什么要打包和压缩&#xff1f; 怎么打包和…...

vue+elementui如何实现在表格中点击按钮预览图片?

效果图如上&#xff1a; 使用el-image-viewer 重点 &#xff1a; 引入 import ElImageViewer from "element-ui/packages/image/src/image-viewer"; <template><div class"preview-table"><el-table border :data"tableData" …...

LLaMA 2:开源的预训练和微调语言模型推理引擎 | 开源日报 No.86

facebookresearch/llama Stars: 36.0k License: NOASSERTION LLaMA 2 是一个开源项目&#xff0c;用于加载 LLaMA 模型并进行推理。 该项目的主要功能是提供预训练和微调后的 LLaMA 语言模型的权重和起始代码。这些模型参数范围从 7B 到 70B 不等。 以下是该项目的关键特性…...

01-AI大模型智能客服 V0.1「上」

你好&#xff0c;我是悦创。 首发&#xff1a;https://mp.weixin.qq.com/s/6MTkpWZCEbFWOcUn0Vexvw V0.1 版本我将分为上中下三篇进行书写和发布&#xff0c;欢迎分享和我微信进讨论群&#xff1a;Jiabcdefh。 计划&#xff1a; 会迭代好几个版本&#xff0c;看阅读量和点赞…...

【23真题】罕见211!数一配英二!

今天分享的是23年合肥工业大学833的信号与系统数字信号处理试题及解析。合工大833考数一英二&#xff0c;这样的搭配还是很少见的。 本套试卷难度分析&#xff1a;22年合肥工业大学833考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取!平均分为80和…...

macos简单配置openclaw贝

1 实用案例 1.1 表格样式生成 本示例用于生成包含富文本样式与单元格背景色的Word表格文档。 模板内容&#xff1a; 渲染代码&#xff1a; # python-docx-template/blob/master/tests/comments.py from docxtpl import DocxTemplate, RichText # data: python-docx-template/bl…...

嵌入式裸机开发中的轻量级定时调度方案

1. SmartTimer&#xff1a;裸机环境下的轻量级定时调度方案在嵌入式开发中&#xff0c;定时任务管理是个永恒的话题。我最近在做一个空气质量监测项目时&#xff0c;发现传统的裸机编程方式在处理多个定时任务时显得力不从心。硬件定时器资源有限&#xff0c;软件标志位管理又容…...

老年关怀:AI Agent作为健康与生活伴侣

老年关怀:AI Agent作为健康与生活伴侣 1. 核心概念 1.1 老年健康与生活关怀的“黄金三角困境” 核心概念拆解 老年健康与生活关怀的黄金三角困境是我在过去7年参与5个省级智慧养老试点项目、调研超过3000位独居/空巢老人、200家社区养老机构和100家科技厂商后总结出的核心矛…...

STM32F429外设时钟分配详解:为什么你的定时器速度总是不对?

STM32F429定时器时钟配置实战&#xff1a;破解速度偏差的底层逻辑 第一次在项目中遇到定时器速度异常时&#xff0c;我盯着示波器上飘忽不定的PWM波形百思不得其解——明明代码里的分频系数计算无误&#xff0c;为什么实际输出频率总是偏离预期&#xff1f;这个困扰无数STM32开…...

别再为CUDA版本头疼了!手把手教你用PyTorch 1.8.1 + CUDA 10.1搞定YOLOv5环境(附避坑指南)

深度学习环境配置终极指南&#xff1a;PyTorch与CUDA版本精准匹配实战 环境配置的常见痛点与解决方案 刚接触深度学习的开发者们&#xff0c;十有八九会在环境配置阶段遇到各种"玄学问题"。明明按照教程一步步操作&#xff0c;却总是卡在PyTorch与CUDA版本不兼容的…...

如何3分钟告别GitHub英文界面困扰?中文翻译插件全攻略

如何3分钟告别GitHub英文界面困扰&#xff1f;中文翻译插件全攻略 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你是否曾在GitHub上…...

PyCharm虚拟环境配置避坑指南:为什么你的模块导入有提示但运行报错?

PyCharm虚拟环境配置避坑指南&#xff1a;为什么你的模块导入有提示但运行报错&#xff1f; 作为Python开发者&#xff0c;PyCharm的智能提示功能是我们日常开发的重要助力。但你是否遇到过这样的情况&#xff1a;明明在虚拟环境中安装了模块&#xff0c;代码运行时一切正常&am…...

解锁毕业论文新姿势:好写作AI,你的学术“智能外挂”!

在学术的江湖里&#xff0c;毕业论文就像是一场终极BOSS战&#xff0c;每一位学子都是手持“知识之剑”的勇士&#xff0c;誓要斩断迷茫&#xff0c;赢得学术的桂冠。但面对浩如烟海的文献、错综复杂的逻辑、还有那令人头疼的格式规范&#xff0c;不少勇士都感到力不从心。别怕…...

STM32CubeMX+Keil5+ESP8266:基于HAL库的物联网设备快速联网实战

1. 环境准备与工具链搭建 第一次接触STM32ESP8266组合开发时&#xff0c;我花了整整两天时间才把开发环境理顺。现在回想起来&#xff0c;其实只需要三个核心工具&#xff1a;STM32CubeMX、Keil MDK-ARM和串口调试助手。建议使用Keil5版本&#xff0c;它对HAL库的支持最稳定。我…...

恒压供水全套图纸程序 西门子s7-200smart西门子触摸 屏 1.恒压供水系统

恒压供水全套图纸程序 西门子s7-200smart西门子触摸 屏 1.恒压供水系统&#xff0c;采用西门子S7-200smart PLC&#xff0c;西门子IE700触摸屏&#xff1b; 2.一拖三&#xff0c;根据设定压力自动投切电机&#xff0c;自动升降频率&#xff0c;PID调节&#xff0c;程序逻辑…...