本模板可以设置 HTTP 报文的头信息。

一、增加响应头信息

  1. 语法:add_header name value
  2. 默认值: none
  3. 作用域: http, server, location

示例:

  1. server {
  2. ...
  3. # 增加响应头解决跨域问题
  4. add_header 'Access-Control-Allow-Origin' '*';
  5. add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS, PUT, PATCH, DELETE';
  6. add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN, Self-Referer, UUID';
  7. add_header 'Access-Control-Allow-Credentials' 'true';
  8. add_header 'Access-Control-Expose-Headers' 'Authorization, authenticated';
  9. ...
  10. }

二、控制资源缓存

  1. 语法:expires [time|epoch|max|off]
  2. 默认值:off
  3. 作用域:http, server, location

示例:

  1. server {
  2. ...
  3. location ~ .*\.(js|css)?$ {
  4. # expires 24h; # 缓存24小时
  5. # expires 60; # 缓存60秒
  6. # expires 0; # 不启用缓存
  7. # expires -1; # 不启用缓存
  8. # expires epoch; # 不启用缓存
  9. # expires max; # 缓存10年
  10. }
  11. ...
  12. }

使用本指令可以控制 HTTP 应答中的 Expires 和 Cache-Control 的头信息(起到控制页面缓存的作用)。

  1. time:可以在值中使用正数或负数。Expires头标的值将通过当前系统时间加上您设定的time值来获得。
  2. epoch:指定Expires的值为 1 January, 1970, 00:00:01 GMT
  3. max:指定 Expires的值为 31 December 2037 23:59:59 GMTCache-Control的值为10年。
  4. -1:指定 Expires的值为服务器当前时间 -1s,即永远过期。
  5. off:表示不修改“Expires”和“Cache-Control”的值。

Cache-Control 的值会根据 expires 配置来决定:

  1. expires 为负数:Cache-Control: no-cache
  2. expires 为正数或零:Cache-Control: max-age = <秒数>