Назад | Перейти на главную страницу

Альтернатива Nginx Cache, где два запроса могут одновременно заполнять большие файлы кеша?

Я использую Nginx в качестве обратного прокси-сервера кеширования для больших файлов.

Для меня важно, чтобы исходный сервер не должен выдавать больше полосы пропускания, чем необходимо. Поэтому, если загрузка файла начинается с двух подключений, я не хочу, чтобы nginx загружал весь файл два раза.

Итак, я включил proxy_cache_lock который работает для этого. Но тогда второй запрос должен дождаться завершения первого запроса, чтобы загрузить файл. Это может занять много времени, и я хочу, чтобы второй запрос начал загрузку сразу.

Итак, мне нужна система, в которой два запроса (которые будут запросами диапазона http) могут заполнять один и тот же файл кеша, и каждый запрос загружает свой диапазон только с исходного сервера.

Это имеет смысл только для больших файлов, и это то, для чего, похоже, предназначено большинство систем (varnish, nginx). Nginx в целом хорошо работает с большими файлами, но не в этой ситуации.

Есть ли система кэширования, которая могла бы удовлетворить мои потребности, или мне нужно написать свою собственную? Я думаю, что у некоторых CDN могут быть похожие требования.