Nginx expires、etag、if_modified_since:客户端缓存控制详细说明以及案例
2025-03-09 11:49:45
60
参考资料
Nginx expires、etag、if_modified_since:客户端缓存控制详细说明以及案例
Nginx 客户端缓存控制
1. expires
expires
指令用于设置响应头中的 Expires
和 Cache-Control
,控制客户端缓存的时间。
语法:
expires [time|epoch|max|off];
案例:
location /static/ { expires 1d; # 缓存1天 }
1d
表示缓存1天。max
表示缓存10年。off
表示禁用缓存。
2. etag
etag
指令用于启用或禁用 ETag
响应头,用于标识资源的唯一性。
语法:
etag on|off;
案例:
location /static/ { etag on; # 启用ETag }
on
表示启用ETag
。off
表示禁用ETag
。
3. if_modified_since
if_modified_since
指令用于控制 If-Modified-Since
请求头的处理方式。
语法:
if_modified_since off|exact|before;
案例:
location /static/ { if_modified_since exact; # 精确匹配修改时间 }
off
表示忽略If-Modified-Since
请求头。exact
表示精确匹配修改时间。before
表示如果修改时间早于请求头中的时间,则返回304。
综合案例
location /static/ { expires 1d; # 缓存1天 etag on; # 启用ETag if_modified_since exact; # 精确匹配修改时间 }
该配置使
/static/
目录下的资源缓存1天,启用ETag
,并精确匹配If-Modified-Since
请求头。