由于某些文件,会在短时间内打开多从,为了减轻服务器压力,一般选择让用户客户端做缓存以达到短时间内不用多次重复下载的目的。
优点:客户端下载一次之后,在缓存时间内不用再次下载,减少服务器压力。
缺点:如果服务器更新了缓存文件,用户不能接收到最新文件。
解决方法:服务器更新文件之后,改一次名字。
Nginx有自带的缓存模块,expires可以设定图片或者其他格式文件的缓存时间
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ ##缓存格式为这些的文件
{
expires 3650d; ##缓存时间3650天
root html/bbs; ##访问家目录为html下的bbs
}
location ~ .*\.(js|css)?$ ##缓存这些格式的文件
{
expires 30d; ##缓存时间为30天
root html/bbs;
}
之后reload服务
查看缓存时间可以用curl -I
[root@Server1 ~]# curl -I bbs.etiantian.org/m1.bmp
HTTP/1.1 200 OK
Server: nginx/1.4.7
Date: Mon, 18 Dec 2017 11:42:04 GMT
Content-Type: image/x-ms-bmp
Content-Length: 39298
Last-Modified: Thu, 14 Dec 2017 02:19:59 GMT
Connection: keep-alive
ETag: "5a31dfcf-9982"
Expires: Thu, 16 Dec 2027 11:42:04 GMT ##缓存到期时间
Cache-Control: max-age=315360000
Accept-Ranges: bytes