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

Разделение на фрагменты ответа для лака

У меня есть инструмент для запросов к базе данных, который возвращает данные с кодировкой Transfer: chunked. Я хотел бы использовать существующую инфраструктуру varnish для кэширования ответов от этого инструмента, но varnish отказывается кэшировать фрагментированные документы. Между лаком и самим инструментом есть прокси-сервер nginx, но я не мог найти никакого способа отключить его ответы. Есть ли решение для nginx или любого другого аналогичного прокси, которое в основном делало бы следующее:

  1. Возьмите ответ от бэкэнда и, если он разбит на части, сохраните его до заданного размера.
  2. Если ответ заканчивается до достижения лимита, переупакуйте его как единый объект без фрагментов и отправьте с правильной Content-Length
  3. Если ответ не заканчивается, отправьте накопленные данные (с исходными фрагментами или в виде одного большого фрагмента) и продолжите потоковую передачу с этой точки вперед.