Your Heart's A Bird Without The Wings To Fly
Nginx 4 :静态资源缓存处理
Nginx 4 :静态资源缓存处理

Nginx 4 :静态资源缓存处理

web缓存的种类

客户端缓存
浏览器缓存
服务端缓存
Nginx/redis/Memcached等

浏览器缓存的执行流程

HTTP协议中和页面缓存相关的字段,认识一下

强缓存:直接从本地获取
弱缓存:向服务端请求,再获取。

浏览器缓存相关指令

Nginx需要进行缓存相关设置,就需要用到如下的指令

expires指令

该指令用来控制页面缓存的作用,可以通过该指令控制HTTP应答中的“Expires”和“Cache-Control”

语法expires [modified] time expires epoch | max |off
默认值expires off;
位置http、server、location

time:可以是整数,也可以是负数,指定过期时间,如果是负数,Cache-Control为no-cache,如果为整数或者0,则Cache-Control的值为max-age=time;

epoch:指定expires的值为’1 January ,1970,00.00:01′,Cache-Control的值no-cache

max:指定Cache-Copntrol为10年

http{
location ~ .*\.(html|js|css|png)$ {
expires 1000;      #或者写10d,就表示10天后过期
}
}

add_header指令

该指令用来添加指定的响应头和响应值

语法add_header name value [always]
默认值
位置http、server、location

Cache-Control作为响应头信息,可以设置如下值:

缓存响应指令:

Cache-control must-revalidate
Cache-control no-cache
Cache-control no-store
Cache-control no-transform
Cache-control public
Cache-control private
Cache-control proxy-revalidate
Cache-control max-age=<seconds>
Cache-control s-maxage=<seconds>
指令说明
must-revalidate可缓存但必须再向源服务器进行确认
no-cache缓存前必须确认其有效性
no-store不缓存请求或响应的任何内容
no-transform代理不可更改媒体类型
public可向任意方提供响应的缓存
private仅向特定用户返回响应
proxy-revalidate要求中间缓存服务器对缓存的响应有效性再进行确认
max-age=<seconds>响应最大Age值
s-maxage=<seconds>公共缓存服务器响应的最大Age值

Leave a Reply

Your email address will not be published. Required fields are marked *