美文网首页
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