if_modified_since
'if_modified_since' 指令控制 NGINX 如何根据指定资源的 Last-Modified 时间戳来响应请求。
NGINX HTTP Core
·
httpserverlocation
语法if_modified_since on | off | exact;
默认值off
上下文http, server, location
参数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 选项会将任何未修改的资源视为有效。
⚠
确保您的缓存策略与该指令配合良好,以避免对服务器造成不必要的负载。