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

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协议访问一个比较大的文件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容