抱歉,我的问题如下:上游是 IIS 服务器,用于定位视频文件。我的 nginx 是一个代理缓存服务器,当客户端开始在其浏览器中播放 mp4 文件时,我需要缓存它,然后将其发送/流式传输到客户端。如果 mp4 文件的索引位于文件的开头,那么就可以了,它工作正常。但是,如果文件的索引位于 mp4 文件的末尾,那么我就会遇到问题,我正在查找缓存,发现 nginx 从上游文件缓存到末尾并删除它,对于文件的下一部分,它再次缓存它,完全发送部分并删除缓存...我不明白为什么 :( 它还发送许多错误标头,因为长度不正确,在这种情况下播放器会停止 :(
(RAM 缓存定义)
1级服务器防御
server {
listen front.network;
server_name .mybox.com;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
max_ranges 1024;
proxy_cache ssd;
proxy_cache_valid 200 600s;
proxy_cache_lock on;
proxy_read_timeout 10m;
proxy_send_timeout 10m;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
add_header Accept-Ranges bytes;
proxy_cache_min_uses 1;
proxy_force_ranges on;
proxy_cache_key $uri$is_args$args;
# Immediately forward requests to the origin if we are filling the cache
proxy_cache_lock_timeout 0s;
# Set the 'age' to a value larger than the expected fill time
proxy_cache_lock_age 200s;
proxy_cache_valid 200 206 301 302 48h ;
proxy_cache_use_stale updating;
location /5 {
proxy_set_header Host $redirect_host;
proxy_pass http://$redirect_upstream;
}
}