使用 expires 参数。

不缓存

  1. server {
  2. expires -1;
  3. }

输出 Response Headers:

  1. Cache-Control:no-cache

当文件没有变更时会返回 304 ,有变更时会是 200 ,如果强制命中 200 可以再添加: if_modified_since off; 忽略 Request Headers 里的 If-Modified-Since 字段。

缓存

  1. server {
  2. expires 1d;
  3. }

1d 为 1 天,单位如下:

  1. ms milliseconds
  2. s seconds
  3. m minutes
  4. h hours
  5. d days
  6. w weeks
  7. M months30 days
  8. y years365 days

如果希望最大缓存可以:

  1. server {
  2. expires max;
  3. }

输出 Response Headers:

  1. Cache-Control:max-age=315360000

根据链接设置缓存时间

  1. server {
  2. # 设置为1月
  3. set $expires_time 1M;
  4. # 针对后台不缓存
  5. if ($request_uri ~* ^/admin(\/.*)?$) {
  6. set $expires_time -1;
  7. }
  8. # 针对静态文件缓存最大
  9. if ($request_uri ~* ^/static(\/.*)?$) {
  10. set $expires_time max;
  11. }
  12. # 设置吧
  13. expires $expires_time;
  14. }