1.什么是expires?
expires为一个资源设定有效期限。 也就是说,服务器端不需要验证,直接通过浏览器自己确认是否过期就可以了,不会产生额外的流量。 此方法最适合不经常更改的资源。 如果经常更改文件,请不要使用expires进行缓存。
expires起到控制页面缓存的作用,合理配置expires可以减少很多服务的要求。
2.nginx配置expires
浏览官方技术文档http://nginx.org/en/docs/http/ngx _ http _ core _ module.html并搜索expires关键字。
语法: expires [time|epoch|max|off]
默认值:关闭
作用域: http、server、location
此命令用于控制HTTP响应的“Expires”和“Cache-Control”标头,并控制页缓存。
时间值可以是正数或负数。 “Expires”标题的值是通过将当前系统时间设置的time值相加而获得的。
所以,在此之前必须安排nginx所在的时区,date_default_timezone_set('PRC');[其中PRC是'中华人民共和国' ]。
*epoch指定" Expires "的值为- 1 January,1970,00336000336001 GMT。
*max指定的" Expires "值为- 31 December 20372:59336059 GMT," Cache-Control "值为10年。
*-1将" expires "的值指定为服务器的当前时间-1s将永远过期。
*'Cache-Control '指定max-age命令缓存组件的次数。
在不支持http1.1的浏览器中,控制仍然需要expires,所以希望能够指定两个响应头。
但是,HTTP规范规定max-age命令将重写expires标头。
*'off”表示不更改“Expires”和“Cache-Control”的值。
3.举例说明:
例1:控制图像的有效期为7天
location~~.(gif|jpg|JPEG|png|BMP|ico ) $ { expires 7d; }
例2:控件匹配/admin/或/user/目录中的所有文件缓存设置为最大时间
location~~//admin|user//{ root/www/expires max; }