Как реализовать кроссплатформенный обратный прокси
Ищите обратный прокси-сервер для кэширования, который может выполнять следующие действия: 1. быть установленным в местах расположения спутников, чтобы снять нагрузку с центрального контент-сервера 2. кэшировать 5-10 ГБ статических ресурсов img/swf с исходного сервера и обнаруживать обновления носителей 3. НЕТ браузера необходима перенастройка (без настроек прокси-сервера) 3. Поддержка пула или балансировки нагрузки (приятно иметь). 4. позволяет начальное заполнение активов из местных СМИ (приятно иметь).
ограничения: 1. кроссплатформенность для Windows и Mac. 2. довольно прост в настройке / обслуживании и должен работать на посредственном оборудовании. 3. лицензия должна позволять коммерческое использование
Мои первые мысли были: найти решение, написанное полностью на Java или другом переносимом языке, или написать свое собственное минимальное решение на Java, или создать образ виртуальной машины Squid/Traffic Server/Nginx и т. Д., Работающий на Linux.
Еще не нашли хороший пакет, и я беспокоюсь, что использование виртуальной машины может быть слишком медленным. Это не моя область знаний, поэтому я надеюсь, что есть хорошие идеи.
2 ответа
Вы рассматривали apache httpd с mod_proxy и mod_cache?
Varnish - кеширование контролируется правилами на сервере лака в сотрудничестве с заголовками с исходных серверов.
Балансировка нагрузки - что-то вроде haproxy должно сработать, не уверен, хорош ли лак в этом или нет. Балансировка нагрузки и кэширование - две разные функции - держите их отдельно, если можете.
Что касается обнаружения изменений и их выталкивания - это больше проблема дизайна приложения. Если вы установите таймауты кэша (на всех уровнях, чтобы ваши обратные прокси-серверы, а также клиентские браузеры вели себя согласованно), то новый контент должен быть подобран соответствующим образом.
Для массовой загрузки нового контента вы можете просто включить что-то в прокси для hte контента и сделать так, чтобы они предварительно загрузили его.
Если вы хотите следить за изменениями... не совсем уверены в этом, но если Varnish не может сделать это самостоятельно, это достаточно простой сценарий для написания.