Code前端首页关于Code前端联系我们

Nginx 教程:配置压缩和解压缩以及发送文件

terry 2年前 (2023-09-28) 阅读数 57 #未命名

配置响应的压缩或解压缩以及发送压缩文件。

本文包含以下内容:

  1. 压缩和解压简介
  2. 启用压缩
  3. 启用解压缩
  4. 发送压缩文件

。压缩和解压简介然而,由于压缩发生在运行时,它也会带来大量的处理开销,这会对性能产生负面影响。 NGINX 在将响应发送到客户端之前执行压缩,但不会“压缩”压缩的响应(例如通过代理服务器)。

2。启用压缩

要启用压缩,请使用 include gzip 指令并指定 on

gzip on;
Shell

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

gzip_types text/plain application/xml;
Shell

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

gzip_min_length 1000;
Shell

默认情况下,NGINX 不会压缩对代理请求(来自代理服务器的请求)的响应。请求来自代理服务器这一事实由请求中是否存在 Via 标头字段来确定。使用 gzip_proxyed 指令配置响应压缩。该指令有几个参数指定 NGINX 应如何压缩代理请求。例如,仅压缩未缓存在代理服务器上的请求的响应是有意义的。为此, gzip_proxyed 指令包含一些参数,告诉 NGINX 检查响应中的 Cache-Control 标头字段(如果值为 ❀❙❙ 、 no shop) 或private,答案将被压缩。您还需要指定 Expires 来检查 Expires 标头字段的值。这些参数在以下示例中与 auth 参数一起设置,该参数检查是否存在 Authorization 标头字段(授权响应通常是最终用户特定的且不缓存)。 :

gzip_proxied no-cache no-store private expired auth;
Shell

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

gzip 压缩的一般配置可能如下所示。

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

3。允许解包

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

要启用运行时提取,请使用gunzip

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

gunzip 指令可以在与 gzip 指令相同的上下文中指定: 注意:此模块是一个单独的指令,默认情况下 Shel 可能会发生以下情况:以下它们不包含在开源 NGINX 版本中。

4。发送压缩文件

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

location / {
    gzip_static on;
}
Shell

在这种情况下,为了服务 /path/to/file 的请求,NGINX 将尝试查找并发送文件 g/path/z/file。

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

请注意,gzip_static指令不允许即时压缩。它只是用压缩工具预先压缩的文件。要动态压缩内容(不仅仅是静态内容),请在运行时使用 gzip 指令。

此策略在单独的模块中定义,默认情况下可能不包含在开源 NGINX 版本中。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门