1 原理
在默认下,请求过的内容会接受304,而从本地缓存调用。这是通过client向server发送请求,给出ETag,server确认ETag未变,则不返回内容,client调用本地缓存。
而expires设置,client没有向server发送请求,直接调用未过期的缓存资源。
对于一些静态资源,比如图片,服务器上很少更新,就可以设置在client上缓存起来,浏览器请求的时候,只要过期时间没到,就使用本地缓存,以减少服务器带宽压力。
如果设置了expires,在client的资源请求上,会有以下标明。

2 配置
针对一个server,图片设置过期30d,js|css是1h。
server {
listen 80;
server_name www.aishop.com aishop.com;
root /data/aishop.com/;
#charset koi8-r;
access_log logs/aishop.com.log main;
index index.html;
location ~* ^/(js|css) {
expires 1h;
}
location ~* .(jpg|jgep|png|gif)$ {
expires 30h;
}
}