immutable_types

`immutable_types` 指令指定将对哪些 MIME 类型在 Cache-Control 头中应用 `immutable` 属性。

语法immutable_types type1 [type2 ...];
默认值none
上下文http, server, location
参数1+

说明

immutable_types 指令是 NGINX 模块的一个组成部分,旨在优化静态资源的缓存行为。启用时,它会指示 NGINX 在 Cache-Control 头中为列出的 MIME 类型设置 immutable 属性。该属性向浏览器表明响应主体不会改变,从而允许更有效的缓存策略。响应因此被视为稳定,减少了对服务器的请求并改善了客户端的加载时间。

该指令至少需要一个参数,即一个有效 MIME 类型的列表。必须在配置中指定这些类型,以确保相关资源被视为不可变。当浏览器遇到这些类型时,后续请求将避免确认其新鲜度,这对在名称中带有版本信息(例如带哈希的文件名)的资源尤其有用,因为这能有效减少不会改变资源的缓存验证请求。

在应用了 immutable 的配置中,当通过 HTTP/1.0 提供或缺少 Expires 时,NGINX 会自动为这些类型设置远期的过期时间。这对于尽可能利用缓存内容、减少不必要的服务器重新验证,从而提供更好的用户体验至关重要。

配置示例

http {
    server {
        location /assets/ {
            immutable on;
            immutable_types image/png image/jpeg;
        }
    }
}

确保所指定的 MIME 类型正确,以避免意外的缓存行为。

对于不支持 immutable 属性的浏览器,该指令的效果可能会受到限制。

配置错误可能导致在资源实际发生变化时仍然提供过时的内容。

← 返回所有指令