Nginx R31 doc-11-Compression and Decompression 压缩与解压缩

2024-05-26 13:52

本文主要是介绍Nginx R31 doc-11-Compression and Decompression 压缩与解压缩,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

大家好,我是老马。很高兴遇到你。

我们为 java 开发者实现了 java 版本的 nginx

https://github.com/houbb/nginx4j

如果你想知道 servlet 如何处理的,可以参考我的另一个项目:

手写从零实现简易版 tomcat minicat

压缩与解压缩

压缩服务器响应,或者对不支持压缩的客户端进行解压缩,以提高交付速度并减少服务器的开销。

这一部分描述了如何配置响应的压缩或解压缩,以及发送压缩文件。

介绍

压缩响应通常会显著减小传输数据的大小。然而,由于压缩发生在运行时,它也可能会增加相当大的处理开销,从而对性能产生负面影响。

NGINX 在将响应发送给客户端之前执行压缩,但不会对已经压缩的响应进行“双重压缩”(例如,通过代理服务器压缩的响应)。

启用压缩

要启用压缩,请使用 gzip 指令,并使用 on 参数。

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-cache、no-store 或 private 时压缩响应。此外,必须包括 expired 参数以检查 Expires 标头字段的值。以下是这些参数的设置示例,以及 auth 参数,该参数检查 Authorization 标头字段的存在(授权响应特定于最终用户,通常不会被缓存):

gzip_proxied no-cache no-store private expired auth;

与大多数其他指令一样,配置压缩的指令可以包含在 http 上下文或服务器或位置配置块中。

压缩 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;...
}

请注意,此指令是在一个单独的模块中定义的,默认情况下可能不包含在 NGINX Open Source 构建中。

发送压缩文件

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

location / {gzip_static on;
}

在这种情况下,为了处理对 /path/to/file 的请求,NGINX 尝试找到并发送文件 /path/to/file.gz。

如果文件不存在,或者客户端不支持 gzip,则 NGINX 发送文件的未压缩版本。

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

此指令是在一个单独的模块中定义的,默认情况下可能不包含在 NGINX Open Source 构建中。

nginx 系列

从零手写实现 nginx-01-为什么不能有 java 版本的 nginx?

从零手写实现 nginx-02-nginx 的核心能力

从零手写实现 nginx-03-nginx 基于 Netty 实现

从零手写实现 nginx-04-基于 netty http 出入参优化处理

从零手写实现 nginx-05-MIME类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型)

Nginx 实战-01-nginx ubuntu 安装笔记

Nginx 实战-01-nginx windows 安装笔记

Nginx 实战-02-nginx proxy_pass 服务代理访问 使用笔记 ubuntu nodejs

Nginx 实战-03-nginx 负载均衡

Nginx 实战-04-nginx 不同的地址访问不同的服务

Nginx 实战-05-nginx 反向代理实现域名到指定的 ip

Nginx-01-聊一聊 nginx

Nginx-01-Nginx 是什么

Nginx-02-为什么使用 Nginx

Nginx-02-Nginx Ubuntu 安装 + windows10 + WSL ubuntu 安装 nginx 实战笔记

Nginx-02-基本使用

Nginx-03-Nginx 项目架构

Nginx-04-Docker Nginx

Nginx-05-nginx 反向代理是什么?windows 下如何配置使用 nginx

Nginx-06-nginx 汇总入门介绍

这篇关于Nginx R31 doc-11-Compression and Decompression 压缩与解压缩的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1004653

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历

转自:http://blog.csdn.net/fengyily/article/details/42557841 本人一直用的是CRtmpServer服务,在CRtmpServer服务中根据自已的想法也加入了许多功能,如通过http接口来加载配置等,苦于不支持HLS,自已添加ts分片水平又有限,思来想去决定借助SimpleRtmpServer的HLS功能。说干就干,马上查找相关资源

由Lua 粘合的Nginx生态环境

转自:http://blog-zq-org.qiniucdn.com/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html -- agentzh tech-club.org 演讲听录 免责聲明 Lua 粘合的 Nginx 生态环境 2.1. openresty 2.2. 配置小语言 2.3. ngx_drizzle 2.4.

Nginx高性能分析

Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理分析 Nginx 为什么这么快! Nginx 的进程模型 Nginx 服务器,正常运行过程中: 多进程:一个 Master 进程、多个 Worker 进程。Master 进程:管理 Work