Nginx配置压缩和解压缩

压缩服务器响应,或为不支持压缩的客户端解压缩它们,以提高传递速度并减少服务器开销。

压缩响应通常会显著减小传输数据的大小。但是,由于压缩发生在运行时,因此它也会增加相当大的处理开销,从而对性能产生负面影响。NGINX 在向客户端发送响应之前执行压缩,但不会“双重压缩”已压缩的响应(例如,由代理服务器压缩)。

启用压缩

要启用压缩,请在 on 参数中包含 gzip 指令。

gzip on;

默认情况下,NGINX 仅使用 MIME 类型 text/html 压缩响应。若要使用其他 MIME 类型压缩响应,请包括 gzip_types 指令并列出其他类型。

gzip_types text/plain application/xml;

若要指定要压缩的响应的最小长度,请使用 gzip_min_length 指令。默认值为 20 字节(此处调整为 1000):

gzip_min_length 1000;

默认情况下,NGINX 不会压缩对代理请求(来自代理服务器的请求)的响应。请求来自代理服务器的事实取决于请求中 Via 是否存在标头字段。若要配置这些响应的压缩,请使用 gzip_proxied 指令。该指令有许多参数,指定 NGINX 应该压缩哪些类型的代理请求。例如,仅压缩对不会缓存在代理服务器上的请求的响应是合理的。为此,该 gzip_proxied 指令具有指示 NGINX 检查响应中的 Cache-Control 标头字段的参数,如果值为 no-cacheno-storeprivate ,则压缩响应。此外,还必须包含 expired 参数以检查 Expires 标头字段的值。以下示例中设置了这些参数,以及 auth 检查 Authorization 标头字段是否存在的参数(授权响应特定于最终用户,通常不会缓存):

gzip_proxied no-cache no-store private expired auth;

与大多数其他指令一样,配置压缩的指令可以包含在 http 上下文或 server or location 配置块中.

gzip 压缩的整体配置可能如下所示.

server {gzip on;gzip_types      text/plain application/xml;gzip_proxied    no-cache no-store private expired auth;gzip_min_length 1000;...
}

启用解压缩

某些客户端不支持使用 gzip 编码方法的响应。同时,可能需要存储压缩数据,或动态压缩响应并将其存储在缓存中。为了成功地为接受和不接受压缩数据的客户端提供服务,NGINX 可以在将数据发送到后一种类型的客户端时动态解压缩数据。

若要启用运行时解压缩,请使用 gunzip 指令。

location /storage/ {gunzip on;...
}

可以在与指令相同的上下文中指定该 gunzip gzip 指令:

server {gzip on;gzip_min_length 1000;gunzip on;...
}

发送压缩文件

若要将文件的压缩版本而不是常规文件发送到客户端,请将 gzip_static 指令设置为 on 在适当的上下文中.

location / {gzip_static on;
}

在这种情况下,为了处理对 /path/to/file 的请求,NGINX 会尝试查找并发送文件 /path/to/file.gz。如果文件不存在,或者客户端不支持 gzipNGINX 会发送文件的未压缩版本。

请注意,该 gzip_static 指令不启用动态压缩。它仅使用由任何压缩工具预先压缩的文件。若要在运行时压缩内容(而不仅仅是静态内容),请使用该 gzip 指令。

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

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

相关文章

4-2. AOP细节

1 AOP细节 1.1 切入点表达式 1.1.1 作用 通过表达式的方式定位一个或多个具体的连接点。 1.1.2 语法细节 1)切入点表达式的语法格式 execution([权限修饰符] [返回值类型] [简单类名/全类名] 方法名) 2) 举例说明 3)在AspectJ中,切入…

通过国家网络风险管理方法提供安全的网络环境

印度尼西亚通过讨论网络安全法草案启动了其战略举措。不过,政府和议会尚未就该法案的多项内容达成一致。另一方面,制定战略性、全面的网络安全方法的紧迫性从未像今天这样重要。 其政府官方网站遭受了多起网络攻击,引发了人们对国家网络安全…

小肥柴慢慢手写数据结构(C篇)(5-2 AVL树)

小肥柴慢慢学习数据结构笔记(C篇)(5-2 AVL树 目录5-5 AVL出现的原因5-5-1 平衡树5-5-2 平衡二叉树的具体案例 5-6 AVL平衡策略的讨论5-7 不使用平衡因子的实现(黑皮书,训练思维)5-8 使用平衡因子的实现&…

C++ 编程必备:对象生命周期管理的最佳实践

在C中,对象的生命周期是指对象存在的时间段,从对象创建到对象销毁的整个过程。正确地管理对象的生命周期是编写高效、可靠C代码的关键之一 对象的创建 在C中,对象可以通过三种方式创建:静态分配、自动分配和动态分配。 静态分配…

普中STM32-PZ6806L开发板(USART2 串口 + HI-LINK-V20离线语音模块控制LED灯)

简介 买了HI-LINK-V20型号的离线语音识别模块, 为了后面可以做有意思的东西, 现在先来用用, 使用USART2 串口 接收来自我在HI-LINK-V20中预设的动作, 当识别到词条时发送对应的指令到串口, HI-LINK串口接的就是STM32F03ZET6的USART2, 且往下看。 电路原理图 连线图 连线引脚表…

Linux:/proc/sys/vm/目录各文件详解

目录 前言一、/proc/sys/vm/目录各文件二、相关功能的API函数 前言 /proc/sys/vm/ 目录是 Linux 系统中的一个特殊目录,它包含了与虚拟内存子系统相关的系统内核参数。这些参数可以用来配置系统的虚拟内存管理策略,包括内存分配、页面置换、内存压缩、NU…

C读取文件大小的几种方式

一 标准库 fseek 至尾部 读取ftell返回 #include <stdio.h>int main(int argc, char** argv) {char* filenameargv[1];FILE* fp fopen(filename, "r");long int size ;fseek(fp, 0, SEEK_END);size ftell(fp);printf("%s size is %ld\n",filename…

数据库和数据库编程

数据库、数据表、表数据操作以及数据库编程相关的知识点 1. 数据库的概念&#xff1a; 数据库是用于存储和组织数据的系统。数据库管理系统(DBMS)是管理数据库的软件&#xff0c;提供对数据的访问、查询和维护。关系型数据库是一种通过表格结构来组织和管理数据的数据库。 2…

数据结构【线性表篇】(四)

数据结构【线性表篇】(四&#xff09; 文章目录 数据结构【线性表篇】(四&#xff09;前言为什么突然想学算法了&#xff1f;为什么选择码蹄集作为刷题软件&#xff1f; 目录一、栈(一)、栈的顺序存储(二)、栈的链式存储(三)、共享栈 二、队列(一)、队列的顺序存储(二)、队列的…

【react.js + hooks】useUrl 监听路由参数

【react.js hooks】useUrl 监听路由参数 本节我们来实现一个监听并解析 URL 参数的 hook&#xff1a;useUrl。而且这个 hook 的返回类型是可推断的。 实现思路 监听 URL 变化 - 事件监听根据 URL 地址获取参数并返回 - 依赖工具方法推断参数结构 - 泛型参数&#xff08;对象…

Nginx 不同源Https请求Http 报strict-origin-when-cross-origin

原因&#xff1a; nginx代理配置url指向只开放了/* 而我/*/*多了一层路径 成功&#xff1a;

2024新版塔罗占卜网站源码风水起名附带搭建视频及文本教程

附带文本教学及视频教程安装方法以linux为例&#xff1a; 1、建议在服务器上面安装宝塔面板&#xff0c;以便操作&#xff0c;高逼格技术员可以忽略这步操作。 2、把安装包文件解压到根目录&#xff0c;同时建立数据库&#xff0c;把数据文件导入数据库 3、修改核心文件conf…

python多环境管理工具——pyenv-win安装与使用教程

目录 pyenv-win简介 pyenv-win安装 配置环境变量 pyenv的基本命令 pyenv安装py环境 pyenv安装遇到问题 pycharm测试 pyenv-win简介 什么是pyenv-win&#xff1a; 是一个在windows系统上管理python版本的工具。它是pyenv的windows版本&#xff0c;旨在提供类似于unix/li…

ASP.NET Core SignalR推送服务器日志

产线机器人项目,上位机以读写寄存器的方式控制机器人,服务器就是用 ASP.NET Core 写的 Web API。由于前一位开发者写的代码质量问题,导致上位机需要16秒才能启动。经过改造,除了保留业务逻辑代码,其他的基本重写。如今上位机的启动时间在网络状态良好的条件下可以秒启动。…

Avalonia 跨ViewModel访问数据或方法

在Avalonia应用程序中&#xff0c;跨ViewModel访问数据或方法通常是为了实现不同视图间的数据共享和通信。在MVVM设计模式下&#xff0c;这可以通过多种方式进行&#xff1a; 依赖注入&#xff08;DI&#xff09;&#xff1a; 通过IoC容器&#xff08;如Autofac、DryIoc等&…

工作八年经验总结

今年没怎么写博客了&#xff0c;2023年一共才发了5篇&#xff0c;在CSDN的排名也是名落孙山&#xff08;从最辉煌时的几百名落到了180w&#xff09;&#xff0c;在纠结要不要断更&#xff0c;算了&#xff0c;今年我还是在矫情下吧。。。。 【工作篇】 1、2023挑战与机遇并存…

cargo设置国内源 windows+linux

cargo默认的源比pip的源好多了&#xff0c;但是有时候速度还是很慢 一、部分国内源&#xff08;排名不分先后&#xff09; 这些源的格式用在具体的配置文件中 中国科学技术大学 [source.crates-io] replace-with ustc[source.ustc] registry "git://mirrors.ustc.ed…

Redis Cluster集群模式学习

Redis Cluster集群模式 Redis哨兵模式&#xff1a;https://blog.csdn.net/liwenyang1992/article/details/133956200 Redis Cluster集群模式示意图&#xff1a; Cluster模式是Redis3.0开始推出采用无中心结构&#xff0c;每个节点保存数据和整个集群状态&#xff0c;每个节点都…

[C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计

源码地址&#xff1a; github地址&#xff1a;https://github.com/Ahmednull/L2CS-Net L2CS-Net介绍&#xff1a; 眼睛注视&#xff08;eye gaze&#xff09; 是在各种应用中使用的基本线索之一。 它表示用户在人机交互和开放对话系统中的参与程度。此外&#xff0c;它还被用…

C/C++面向对象(OOP)编程-回调函数详解(回调函数、C/C++异步回调、函数指针)

本文主要介绍回调函数的使用&#xff0c;包括函数指针、异步回调编程、主要通过详细的例子来指导在异步编程和事件编程中如何使用回调函数来实现。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;C/C精进之路 &…