Hi
I'm trying to setup a reverse proxy for some private downloads. Here is our setup:
3 Storage servers with High capacity but slow HDDs running nginx
1 loadbalancing server with SSD and high internet uplink.
my file sizes are several hundred megabytes (500+ up to 2GB) running nginx
downloaders are on slow connections with download managers with up to 16 connections for each file
here is what I want to do:
a user sends a request to the SSD server, the ssd server requests the file from Slow servers and caches to response to its fast HDD and serving it to the client. But If I use the proxy_cache , the file serving has to wait till the file has been completly transfered and cache on the SSD disk wich (if several files are requested at the same time) results in a slow connection and timeout or other errors on the client side. so this is not an option.
However I think proxy_buffering is answer to my problem, I think this means each part of the requested file (defined by ranges header) is cached independently.
1. Am I right?
If I'm right then
2. how can I tell the nginx, to buffer like 5mb of requested part in memory (and the excess on the SSD disk) and serve the file to the client until the client has downloaded the part and then request another 5mb?
I'm looking for a setting like output_buffers 1 5m; but for the proxied file.
3. Is there a better solution?
Regards