Nginx(14)缓存

缓存一般存的是静态资源
缓存可以提高客户端的访问速度,并能减轻服务器的压力
1.客户端缓存  (一般用作浏览器缓存)
通过设置 expires 指令,响应头中将会返回Expires 和Cache-Control字段。
当浏览器发现响应头存在这样的缓存字段,当再次请求相同资源时,就会确认在客户端的资源是否过期浏览器在不强制刷新的情况下可使用有效期内的缓存。
如以下配置:
                   
curl -I 192.168.10.11
Cache-Control: max-age=86400

 2.服务器端缓存(主要设置在反向代理服务器上)
通过 expires 指令设置的缓存,主要是针对客户端浏览器的。
如果我们能将静态资源的缓存设置在服务器端,当多个用户访问同一个资源时,缓存命中率及系统的性能将以指数的形式提升。
1).配置一个简单nginx缓存服务器
[root@nginx ~]# vim /etc/nginx/nginx.conf
...
upstream backend{
server 192.168.10.21;
server 192.168.10.22;
}
proxy_cache_path /usr/local/nginx/cache levels=1:2:2 keys_zone=test:20m max_size=1g;
server {       
listen       80;       
server_name  localhost;       
#charset koi8-r;       
#access_log  logs/host.access.log  main;       
location / {               
proxy_pass http://backend;
proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
proxy_cache test;
proxy_cache_valid 200 10m;     
}
}
...
2).指令说明
proxy_cache_path
语法:proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];  
默认值:None  
使用字段:http  
指定缓存的路径和一些其他参数,缓存的数据存储在文件中,并且使用代理url的哈希值作为关键字与文件名。
levels - 目录结构,可以使用任意的1位或2位数字作为目录结构,如 X, X:X或X:X:X ,最多三级。  
keys_zone - 指定所有活动的key和元数据存储的共享内存池区域。  
可以定义多个内存池,但必须是不重复的路径,例如:
proxy_cache_path  /data/nginx/cache/one    levels=1      keys_zone=one:10m;
proxy_cache_path  /data/nginx/cache/two    levels=2:2    keys_zone=two:100m;
proxy_cache_path  /data/nginx/cache/three  levels=1:1:2  keys_zone=three:1000m;
inactive - 指定缓存数据的失效时间,默认为10分钟。
max_size - 定义最大缓存大小,超出后则删除最少使用的数据

proxy_cache
语法:proxy_cache zone_name;  
默认值:None  
使用字段:http, server, location  
设置一个缓存区域的名称,一个相同的区域可以在不同的地方使用。  

proxy_cache_valid
语法:proxy_cache_valid reply_code [reply_code …] time;  
默认值:None  
使用字段:http, server, location  
为不同的应答设置不同的缓存时间,例如:
proxy_cache_valid  200 302  10m;
proxy_cache_valid  404      1m;
为应答代码为200和302的设置缓存时间为10分钟,404代码缓存1分钟。  
如果只定义时间:
proxy_cache_valid 5m;
那么只对代码为200, 301和302的应答进行缓存。  
同样可以使用any参数任何应答。
proxy_cache_valid  200 302 10m;
proxy_cache_valid  301 1h;
proxy_cache_valid  any 1m;

命中缓存时 代理服务器上有访问记录,web服务器上没有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值