Nginx 客户端缓存控制

1. expires

expires 指令用于设置响应头中的 ExpiresCache-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 请求头。

本篇文章内容来源于:Nginx expires、etag、if_modified_since:客户端缓存控制详细说明以及案例