Назад |
Перейти на главную страницу
Nginx proxy_cache / Varnish - параллельные запросы запускают несколько запросов к бэкэнду?
Я ищу обратный HTTP-прокси, который будет эффективно обрабатывать варианты использования потоковой передачи HTTP. Предположим, что размер файла / фрагмента составляет до 4 МБ с постоянной загрузкой клиентских запросов для одного и того же файла, очень близко друг к другу (запросы, поступающие, пока серверная часть удовлетворяет первый запрос).
Услуги CDN здесь использоваться не будут.
Что происходит в приведенных ниже событиях для каждого Nginx и Varnish (пожалуйста, вставьте другое решение, которое, по вашему мнению, также более подходящее)?
- Client1 делает запрос к обратному прокси (proxy_cache или Varnish), файл не кэшируется (MISS).
- Прокси делает запросы к бэкэнду и пытается заполнить локальный кеш и доставить ответ клиенту1.
- Пока запрос для Client1 обслуживается (до завершения прокси), другие параллельные запросы для того же файла выполняются другими клиентами.
Цель:
- Прокси-сервер будет блокировать дополнительные запросы при извлечении файла из бэкэнда.
- Прокси-сервер будет обслуживать всех ожидающих клиентов одновременно по мере поступления данных (по мере поступления, а не после буферизации всего файла).
- В любой момент времени для конкретного файла может быть сделан только один запрос к бэкэнду. Все клиенты должны обслуживаться общим ответом серверной части. Исключение составляют случаи, когда клиент делает запрос диапазона HTTP для другого диапазона.
Какое решение лучше всего, когда запрашиваются файлы большего размера? Если есть какие-то ключевые параметры конфигурации для достижения желаемого результата, поделитесь пожалуйста.
Спасибо!