Кеширующий реверс-прокси

Oct 28, 2019 14:35

На хостинге есть веб-сервер под IIS, обслуживающий сайт по HTTPS с относительно тяжелым мультимедиа-содержимым (система обучения). Есть локальная сеть в географически удалённом месте с не очень быстрым интернет-каналом и учебным классом со "студентами". Мультимедиа-контент в основном статика и для ускорения работы его можно было бы принудительно кешировать, для чего на стороне клиентов был в качестве эксперимента установлен Apache 2.4.41 с засунутым в него сертификатом/приватным ключом с оригинального сервера и mod_proxy+mod_cache для реверс-проксирования с кешированием. И оно даже заработало, в кеше стали оседать файлы с JS-кодом и всякие картиночки PNG.

Но оказалось, что JS-код на стороне клиентов загружает мультимедию кусочками, так что прокси получает от сервера ответы 206 Partial Content вместо 200 OK. И ещё оказалось, что апачевские модули mod_cache_disk и socache не поддерживают кеширование данных из таких ответов.

Раньше Squid либо тоже не кешировал 206, либо в таком случае загружал с сервера файл целиком (и тогда кешировал), в зависимости от того, насколько много лишнего ему приходилось качать, предел задавался в конфиге - решение "очень среднее", лекарство может выйти хуже болезни. Притом, что если клиент обрывает загрузку, то и Squid её тоже обрывает, а значит, не кеширует.

Вопрос: какой софт умеет эффективно кешировать такие ответы и работать реверс-проксей? Nginx? Varnish? Что-то ещё?

proxy

Previous post Next post
Up