nginx的缓存设置 expires缓存提升网站负载
2015-12-06 11:42
489 查看
nginx的缓存设置 提高网站性能
对于网站的图片,尤其是新闻站,图片一旦发布,
改动的可能是非常小的.我们希望 能否在用户访问一次后,图片缓存在用户的浏览器端,且时间比较长的缓存.
可以, 用到nginx的expires设置.
nginx中设置过期时间,非常简单,
在location或if段里,来写.
格式 expires 30s;
expires 30m;
expires 2h;
expires 30d;
(注意:服务器的日期要准确,如果服务器的日期落后于实际日期,可能导致缓存失效)
另: 304 也是一种很好的缓存手段
原理是: 服务器响应文件内容是,同时响应etag标签(内容的签名,内容一变,他也变),和
last_modified_since 2个标签值
浏览器下次去请求时,头信息发送这两个标签,服务器检测文件有没有发生变化,如无,直接头信息返回etag,last_modified_since
浏览器知道内容无改变,于是直接调用本地缓存.
这个过程,也请求了服务器,但是传着的内容极少.
对于变化周期较短的,如静态html,js,css,比较适于用这个方式
例:把图片缓存一天
location ~* \.(jpg|jpeg|gif|png){
expires 1d;
}
Nginx对于图片,js等静态文件的缓存设置
注:这个缓存是指针对浏览器所做的缓存,不是指服务器端的数据缓存.
主要知识点: location expires指令
location ~ \.(jpg|jpeg|png|gif)$ {
expires 1d;
}
location ~ \.js$ {
expires 1h;
}
设置并载入新配置文件,用firebug观察,
会发现 图片内容,没有再次产生新的请求,原因--利用了本地缓存的效果.
注: 在大型的新闻站,或文章站中,图片变动的可能性很小,建议做1周左右的缓存
Js,css等小时级的缓存.
如果信息流动比较快,也可以不用expires指令,
用last_modified, etag功能(主流的web服务器都支持这2个头信息)
原理是:
响应: 计算响应内容的签名, etag
和 上次修改时间
请求: 发送
etatg, If-Modified-Since 头信息.
服务器收到后,判断etag是否一致,
最后修改时间是否大于if-Modifiled-Since
如果监测到服务器的内容有变化,则返回304,
浏览器就知道,内容没变,直接用缓存.
304 比起上面的expires
指令
多了1次请求,
但是比200状态,少了传输内容.
对于网站的图片,尤其是新闻站,图片一旦发布,
改动的可能是非常小的.我们希望 能否在用户访问一次后,图片缓存在用户的浏览器端,且时间比较长的缓存.
可以, 用到nginx的expires设置.
nginx中设置过期时间,非常简单,
在location或if段里,来写.
格式 expires 30s;
expires 30m;
expires 2h;
expires 30d;
(注意:服务器的日期要准确,如果服务器的日期落后于实际日期,可能导致缓存失效)
另: 304 也是一种很好的缓存手段
原理是: 服务器响应文件内容是,同时响应etag标签(内容的签名,内容一变,他也变),和
last_modified_since 2个标签值
浏览器下次去请求时,头信息发送这两个标签,服务器检测文件有没有发生变化,如无,直接头信息返回etag,last_modified_since
浏览器知道内容无改变,于是直接调用本地缓存.
这个过程,也请求了服务器,但是传着的内容极少.
对于变化周期较短的,如静态html,js,css,比较适于用这个方式
例:把图片缓存一天
location ~* \.(jpg|jpeg|gif|png){
expires 1d;
}
Nginx对于图片,js等静态文件的缓存设置
注:这个缓存是指针对浏览器所做的缓存,不是指服务器端的数据缓存.
主要知识点: location expires指令
location ~ \.(jpg|jpeg|png|gif)$ {
expires 1d;
}
location ~ \.js$ {
expires 1h;
}
设置并载入新配置文件,用firebug观察,
会发现 图片内容,没有再次产生新的请求,原因--利用了本地缓存的效果.
注: 在大型的新闻站,或文章站中,图片变动的可能性很小,建议做1周左右的缓存
Js,css等小时级的缓存.
如果信息流动比较快,也可以不用expires指令,
用last_modified, etag功能(主流的web服务器都支持这2个头信息)
原理是:
响应: 计算响应内容的签名, etag
和 上次修改时间
请求: 发送
etatg, If-Modified-Since 头信息.
服务器收到后,判断etag是否一致,
最后修改时间是否大于if-Modifiled-Since
如果监测到服务器的内容有变化,则返回304,
浏览器就知道,内容没变,直接用缓存.
304 比起上面的expires
指令
多了1次请求,
但是比200状态,少了传输内容.
相关文章推荐
- nginx gzip压缩提升网站速度
- nginx+php的编译
- Centos 7.0 安装nginx
- windows平台中配置nginx+php环境
- nginx rewrite 语法详解
- Django 部署(Nginx)
- CentOS 7 编译安装 Nginx 1.9.7
- 如何用linux命令查看nginx是否在正常运行
- nginx安装配置+清缓存模块安装
- nginx 编译参数详解(运维不得不看)
- nginx安装(1) – ttlsa教程系列之nginx
- nginx 配置文件中的 location
- Nginx配置文件详细说明
- Nginx rewrite配置规则
- 【实战】nginx定时备份日志
- nginx日志简单认识
- ubuntu下nginx的启停等常用命令
- 将WordPress博客从Apache移植到Nginx后的若干问题总结
- Ubuntu 14.04 安装最新稳定版Nginx 1.6.0
- 开启php-fpm和nginx状态监控