nginx过期配置
location ~ \.(jpg|png|jpeg|gif)$ {
expires 30d;
root /data/www/www.xxx.com/;
}
location ~ \.(js|css)$ {
expires 2h;
root /data/www/www.xxx.com/;
}
防止304出现
if_modified_since off;
add_header Last-Modified "";
etag off;
more_set_headers -s 404 -t 'ETag';
more_clear_headers 'ETag';
nginx expires配置
配置expires
expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求
要配置expires,可以在http段中或者server段中或者location段中加入
|
1
2
3
4
|
location ~ \.(gif|jpg|jpeg|png|bmp|ico)$ {
root /var/www/img/;
expires 30d;
}
|
控制图片等过期时间为30天,当然这个时间可以设置的更长。具体视情况而定
比如
|
1
2
3
4
|
location ~ \.(wma|wmv|asf|mp3|mmf|zip|rar|swf|flv)$ {
root /var/www/upload/;
expires max;
}
|
expires 指令可以控制 HTTP 应答中的“ Expires ”和“ Cache-Control ”的头标(起到控制页面缓存的作用)
语法:expires [time|epoch|max|pff]
默认值:off
expires指令控制HTTP应答中的“Expires”和“Cache-Control”Header头部信息,启动控制页面缓存的作用
time:可以使用正数或负数。“Expires”头标的值将通过当前系统时间加上设定time值来设定。
time值还控制"Cache-Control"的值:
负数表示no-cache
正数或零表示max-age=time
epoch:指定“Expires”的值为 1 January,1970,00:00:01 GMT
max:指定“Expires”的值为31 December2037 23:59:59GMT,"Cache-Control"的值为10年。
-1:指定“Expires”的值为当前服务器时间-1s,即永远过期。
off:不修改“Expires”和"Cache-Control"的值
expires使用了特定的时间,并且要求服务器和客户端的是中严格同步。
而Cache-Control是用max-age指令指定组件被缓存多久。
对于不支持http1.1的浏览器,还是需要expires来控制。所以最好能指定两个响应头。但HTTP规范规定max-age指令将重写expires头。
nginx MapViewOfFile(2097152000) of file mapping "cache_one" failed
cache_one内存设置过大
Nginx 静态资源缓存优化
Nginx设置静态页面压缩和缓存过期时间的方法 www.jb51.net/article/692…
nginx缓存静态资源,只需几个配置提升10倍页面加载速度 www.jianshu.com/p/87cd8a6af…
nginx 设置客户端缓存过期时间 www.cnblogs.com/liusingbon/…
nginx静态文件缓存的解决方案 www.cnblogs.com/wangzhisdu/…
当你第一次bai访问时,服务器会返回给你200状态码,du同时在头里追加ETag值给zhi你。dao浏览器拿到后将其缓存。 下一次再访问时,因浏览器已经有该地址的ETag值了。会将其缓存的ETag值内容放在请求头的If-None-Match中,服务器检查其自身内容的ETag值是否与其一致,如果一致就会返回304状态码,告诉你内容和你保存的一致,没有发生改变过。
举例来说, C:S,你几岁了? S:C,我18岁了。
=========== C:S,你几岁了?我猜你18岁了。 S:靠,你知道还问我?(304) =========== C:S,你几岁了?我猜你18岁了。 S:C,我19岁了。(200)
以上就是200和304的解释。 Cache-Control和Expires则是告诉浏览器缓存这些数据的策略。