nginx實現range請求


前提條件:nginx支持ngx_http_slice_module模塊

配置文件示例:

#location 塊的配置:
location /asd/ {
                slice             512k;
                proxy_cache       cache;
                proxy_cache_key   $uri$is_args$args$slice_range;
                proxy_set_header  Range $slice_range;
                proxy_set_header Host $host:$server_port;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_cache_valid 200 206 304 301 302 10d;
        }
#設置proxy_cache_path
proxy_cache_path /data/nginx_cache/ levels=1:2 keys_zone=cache:100m inactive=300s max_size=5g;

相關參數解釋:

Proxy_cache cache 使用名為cache的對應緩存配置

proxy_cache_valid 200 206 304 301 302 10d; 對httpcode為200…的緩存10天

proxy_cache_key 定義緩存唯一key,通過唯一key來進行hash存取

proxy_set_header 自定義http header頭,用於發送給后端真實服務器。

proxy_cache_path 緩存文件路徑

levels 設置緩存文件目錄層次;levels=1:2 表示兩級目錄

keys_zone 設置緩存名字和共享內存大小

inactive 在指定時間內沒人訪問則被刪除

max_size 最大緩存空間,如果緩存空間滿,默認覆蓋掉緩存時間最長的資源。

參考文檔:
https://blog.csdn.net/ai2000ai/article/details/80485352

​https://blog.csdn.net/guowenyan001/article/details/50836490

報錯解釋:

[alert] mmap(MAP_ANON|MAP_SHARED, 2147483648) failed (12: Cannot allocate memory)

proxy_cache_path沒有設置或設置的內存太大導致,建議改成300m


免責聲明!

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



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