Pages

Monday, 6 May 2013

Nginx Expires 做客户端缓存

location ~*^.+\.(jpg|jpeg|gif)$ {
   root  html //虚拟主机的目录
   expires 30d;
   add_header  Cache-Control private;
}

Nginx的HTTP头处理模块HTTP Headers:
这个模块允许设置任意的HTTP头。这个模块主要是处理浏览器的本地缓存,通过这个输出HTTP Headers Response,让浏览器如何处理本地缓存。
如下例:
expires       24h;
expires       0;
expires       -1;
expires       epoch;
add_header    Cache-Control  private;
指令
add_header
语法:add_header name value
默认值:none
使用字段:http, server, location
当服务器应答代码为200, 204, 301, 302或304时为HTTP应答添加头。
这个值可以使用变量
注意这个指令只会在输出的头部中增加某个新字段,而并不能对某些已经定义的头(如server)进行重写,如果要实现这个操作可以使用第三方模块headers_more。
expires
语法:expires [time|epoch|max|off]
默认值:expires off
使用字段:http, server, location
在应答头中是否开启对“Expires”和“Cache-Control”的增加和修改操作。
可以指定一个正或负的时间值,Expires头中的时间根据目前时间和指令中指定的时间的和来获得。
epoch表示自1970年一月一日00:00:01 GMT的绝对时间,max指定Expires的值为2037年12月31日23:59:59,Cache-Control的值为10 years。
Cache-Control头的内容随预设的时间标识指定:
·设置为负数的时间值:Cache-Control: no-cache。
·设置为正数或0的时间值:Cache-Control: max-age = #,这里#的单位为秒,在指令中指定。
参数off禁止修改应答头中的"Expires"和"Cache-Control"。
注意:expires仅仅适用于200, 204, 301, 302,和304应答。