美文网首页
2019-05-28 nginx用分片提升缓存效率

2019-05-28 nginx用分片提升缓存效率

作者: 张大志的博客 | 来源:发表于2019-05-28 17:10 被阅读0次
proxy_cache_path /etc/nginx/conf.d/cachepath levels=1:2:2 keys_zone=two:10m loader_threshold=300 loader_files=200 max_size=200m inactive=5m;
upstream cacheups {
      server 127.0.0.1:8080;
}
server {
     server_name cache.zhangdazhi.com;
     location / {
         proxy_pass http://cacheups;
         proxy_cache two;
         proxy_cache_valid 200 1m;
         add_header X-cache-Status $upstream_cache_status;
         slice 1m;  #定义分片的大小为1M
         proxy_cache_key $uri$is_args$args$slice_range;  #一定要定义$slice_range
         proxy_set_header Range $slice_range;   #定义一个请求头部
}  
  #     location ~ /purge(/.*){
 #            proxy_cache_purge two $scheme$1;
#}

}
当不使用slice分片时,
[root@hk conf.d]#curl -r 2000010-2000019 cache.zhangdazhi.com/微信图片_20190111164544.jpg -I  #当访问一个大文件时
curl -r表示客户端使用range协议分片访问一个大的文件,本次测试只访问大文件的2000010-2000019M
[root@hk logs]#tail -f access.log   #查看上游服务发现响应给客户端的是整个文件的大小2785502
127.0.0.1 - - [28/May/2019:16:57:47 +0800] "GET /\xE5\xBE\xAE\xE4\xBF\xA1\xE5\x9B\xBE\xE7\x89\x87_20190111164544.jpg HTTP/1.0" 200 2785502 "-" "curl/7.29.0"
[root@hk html]#ll
-rw-r--r-- 1 root root 2785502 Jan 11 16:45 微信图片_20190111164544.jpg
如果使用slice模块
[root@hk conf.d]#curl -r 2000010-2000019 cache.zhangdazhi.com/微信图片_20190111164544.jpg -I  #客户端使用range协议访问时,如果未命中缓存上游服务器响应给客户端的文件大小为定义的1m大小
[root@hk logs]#tail -f access.log 
127.0.0.1 - - [28/May/2019:17:01:18 +0800] "GET /\xE5\xBE\xAE\xE4\xBF\xA1\xE5\x9B\xBE\xE7\x89\x87_20190111164544.jpg HTTP/1.0" 206 1048576 "-" "curl/7.29.0"
这种场景适用于客户端使用range协议访问一个比较大的文件

相关文章

网友评论

      本文标题:2019-05-28 nginx用分片提升缓存效率

      本文链接:https://www.haomeiwen.com/subject/eeodtctx.html