if_modified_since
'if_modified_since' 指令控制 NGINX 如何根据指定资源的 Last-Modified 时间戳来响应请求。 — NGINX HTTP Core
if_modified_since
httpserverlocation
语法if_modified_since on | off | exact;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
`if_modified_since` 指令用于 NGINX 中,根据客户端发送的 Last-Modified 头来管理内容缓存。该指令可以取三个值之一:`off`、`on` 或 `exact`。当设置为 `on` 时,NGINX 会检查请求资源自客户端请求的 If-Modified-Since 头中指定的时间以来是否已被修改。如果资源未改变,NGINX 将以 304 Not Modified 状态响应,表示客户端可以使用其缓存版本。 `exact` 选项进一步细化了比较,要求时间戳完全匹配。如果请求的 If-Modified-Since 时间戳与资源的 Last-Modified 时间戳相符,NGINX 将返回 304 Not Modified 响应。这对于更严格的缓存验证很有用。相反,当设置为 `off` 时,该指令禁用这种检查行为,NGINX 将始终返回资源,而不考虑客户端的缓存状态。这在内容频繁更新且缓存无益的场景中很有用。
配置示例
server {
location /images/ {
if_modified_since on;
}
}⚠
请确认您的后端或静态文件已正确设置 Last-Modified header;否则该指令可能无法按预期工作。
⚠
如果时间戳不完全匹配,`exact` 选项不会返回 304 响应;相比之下,`on` 选项会将任何未修改的资源视为有效。
⚠
确保您的缓存策略与该指令配合良好,以避免对服务器造成不必要的负载。