nginx的缓存设置 提高网站性能对于网站的图片,尤其是新闻站, 图片一旦发布, 改动的可能是非常小的.我们希望 能否在用户访问一次后, 图片缓存在用户的浏览器端,且时间比较长的缓存可以, 用到 nginx的expires设置 nginx中设置过期时间,非常简单,在location或if段里,来写.
格式
expires 30s;#30秒
expires 30m;#30分钟
expires 2h;#2个小时
expires 30d;#30天
备注:
304 也是一种很好的缓存手段
原理是: 服务器响应文件内容是,同时响应etag标签(内容的签名,内容一变,他也变), 和 last_modified_since 2个标签值
浏览器下次去请求时,头信息发送这两个标签, 服务器检测文件有没有发生变化,如无,直接头信息返回 etag,last_modified_since
浏览器知道内容无改变,于是直接调用本地缓存.
这个过程,也请求了服务器,但是传着的内容极少.
对于变化周期较短的,如静态html,js,css,比较适于用这个方式
nginx.conf里配置
http{
...
server {
listen 80;
server_name test.com
location ~* \.(jpg|jpeg|gif|bmp|png){
expires 1d;#缓存1天
}
}
}
浏览器图片缓存一天不请求服务器