Nginx 用分片提示緩存效率基於range協議


107

 

 

slice 模塊

Syntax:slice size;
Default: slice 0;

Context:httpserverlocation

功能:通過range協議將大文件分解多個小文件,更好的用緩存為客戶端的range協議服務

模塊:--with-http_slice_module

location / {
    slice             1m;
    proxy_cache       cache;
    proxy_cache_key   $uri$is_args$args$slice_range;
    proxy_set_header  Range $slice_range;
    proxy_cache_valid 200 206 1h;
    proxy_pass        http://localhost:8000;
}

 下游服務器代碼示列

 server {
        listen       8080;
        server_name  shop**.com.cn;
        location / {

        root html;
                proxy_cache two;
                proxy_cache_valid 200 206 1m;
                proxy_pass http://192.168.0.51:8012; #代理到上游服務器
        }
}

上游服務器代碼示列  在html里有個大文件

server {
                listen 8012;
                default_type text/plain;
                root html;
              
                location / {

                }
}

請求示列

curl -r 10000-10010 http://shop**.com.cn:8080/step -I //-r 表示啟用range

返回示列

HTTP/1.1 206 Partial Content
Server: openresty/1.13.6.2
Date: Fri, 15 Mar 2019 10:07:02 GMT
Content-Type: text/plain
Content-Length: 11 #獲取的實際數量 因為 10000-10010 長度是11
Connection: keep-alive
Last-Modified: Fri, 08 Mar 2019 02:13:42 GMT
Vary: Accept-Encoding
ETag: "5c81cfd6-281c558"
Content-Range: bytes 10000-10010/42059096 #這里會看到總量與取量

 但是有個問題,如果用戶並發請求緩存的話會影響性能 一般用多線程並且使用range協議的話

 proxy_cache_path data/tmpcache levels=2:2 keys_zone=two:10m loader_threshold=300
                     loader_files=200 max_size=200m inactive=1m;
  server {
        listen       8080;
        server_name  shop**.com.cn;
        location / {

        root html;
                slice 1m;
                proxy_cache_key $uri$is_args$args$slice_range;
                proxy_set_header Range $slice_range; #這里必須要加range協議到頭部 而且需要加范圍值
                proxy_cache two;
                proxy_cache_valid 200 206 1m;
                proxy_pass http://192.168.0.51:8012;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM