gzip_static

如果磁盘上存在预先压缩的 gzip 文件,则允许 NGINX 直接提供这些文件。 — NGINX HTTP Core

gzip_static
httpserverlocation
语法gzip_static on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`gzip_static` 指令允许 NGINX 提供带有 `.gz` 扩展名的预先压缩文件,而不是在运行时即时压缩文件。启用后,当对压缩资源发出请求时,NGINX 会首先在指定位置检查对应的 `.gz` 文件是否存在。如果找到,则直接提供该文件,绕过 gzip 模块的运行时压缩。这些预先压缩的文件有助于提高性能,尤其是在高峰流量期间,因为它们减少了与动态 gzip 压缩相关的 CPU 开销。 `gzip_static` 指令接受一个参数,可为 `on` 或 `off`,用于指示启用或禁用该功能。设置为 `on` 时,NGINX 在处理请求时会检查文件的 gzip 压缩版本(通常以 `.gz` 为后缀)是否存在。如果没有找到此类文件,NGINX 会回退为提供常规文件(如果存在),如果两者都不存在则返回错误。此行为提高了资源传输的效率,尤其适用于 HTML、CSS 或 JavaScript 等文本类内容,因为 gzip 压缩通常能显著减小体积。 需要注意的是,为了使 `gzip_static` 有效运行,通常会将其与 `gzip` 指令配合使用,以确保在构建或部署阶段对必要的文件应用压缩。此外,还需要正确管理缓存头,以防在静态文件更新时提供过期的数据。

配置示例

http {
    gzip_static on;

    server {
        location / {
            root /var/www/html;
        }
    }
}

确保 `.gz` 文件已正确生成并放置在预期目录中;否则,请求将无法返回压缩后的版本。

使用 `gzip_static` 不会自动压缩文件;功能要正常工作,原始文件和 `.gz` 文件都必须存在。

如果启用了 `gzip_static`,但没有配套的 `gzip` 指令用于实时压缩,那么未预压缩的文件的用户可能无法享受相应的好处。