immutable_types
`immutable_types` 指令指定将对哪些 MIME 类型在 Cache-Control 头中应用 `immutable` 属性。
NGINX module for setting immutable caching on static assets
·
httpserverlocation
语法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 属性的浏览器,该指令的效果可能会受到限制。
⚠
配置错误可能导致在资源实际发生变化时仍然提供过时的内容。