对于网站的图片,尤其是新闻站, 图片一旦发布, 改动的可能是非常小的. 可以用到 nginx的expires设置在用户访问一次后, 图片缓存在用户的浏览器端,且时间比较长的缓存.
注意:服务器的日期要准确,如果服务器的日期落后实际日期,可能导致缓存失败。
另:304也是一种很好的缓存手段,原理是:服务器响应文件内容是,同时相应etag标签(内容的签名,内容一变,他也变)和last_modified_since 2个标签值。
浏览器下次去请求时候,头信息发送这两个标签,服务器检测文件有没有发生变化,如无,直接头信息返回etag和last_modified_since,浏览器知道内容无改变,于是直接调用本地缓存,这个过程,也请求了服务器,但是传着的内容极少,对于变化周期较短,如htmll,js,css比较实用与这个方式。
在location或if段里来写。
格式:
expires 30s; 30秒过期
expires 30m; 2分钟过期
expires 2h; 2小时过期
expires 30d; 30天过期
[root@tiejiang nginx]# vim conf/nginx.conf //添加一个location
location ~* \.(jpg|jpeg|gif|png) { #不区分大小写,把这四个格式的图片都缓存。
root html;
expires 1d;
}
[root@tiejiang nginx]# ./sbin/nginx -s reload