Компания dotCloud открыла под лицензией MIT код высокопроизводительного прокси-сервера Hipache, оптимизированного для построения распределённой сети web-акселераторов, поддерживающих обработку обращений клиентов по протоколам HTTP и WebSocket. При этом поддержка WebSocket является ключевой особенностью Hipache, который стал первым промышленным решением для высокопроизводительного проксирования WebSocket-трафика. Код проекта написан на языке JavaScript, базируется на библиотеке node-http-proxy и работает под управлением серверной JavaScript-платформы Node.js.

Hipache был разработан для обеспечения перенаправления больших объемов трафика от десятков тысяч облачных приложений (виртуальных хостов), функционирующих в PaaS-сервисе dotCloud. Изначально подобные задачи решались с использованием nginx, использование которого не устроило отсутствием поддержки WebSocket и средств адаптации перенаправления трафика в сети с динамической топологией, в которой новые бэкенды создаются и удаляются с интенсивностью несколько раз в секунду.

Основные особенности Hipache:

  • Поддержка балансировки нагрузки между несколькими бэкендами;
  • Динамическое изменение конфигурации. Конфигурация задаётся в формате JSON и может быть сохранена в БД Redis (достаточно просто поменять параметры конфигурации в Redis и они сразу отразятся в работе прокси);
  • Декларативное описание маршрутизации перенаправления запросов;
  • Масштабирумость через создание многопроцессных обработчиков;
  • Встроенные средства мониторинга состояния бэкендов с поддержкой горячего переключения на запасной бэкенд в случае сбоя и исключения проблемных бэкендов из списка активных обработчиков в пуле балансировки нагрузки;
  • Автоматическое отслеживание потребления памяти. В случае превышения заданного лимита вследствии утечки памяти, проблемный процесс перезапускается;
  • Поддержка проксирования SSL-трафика (при установке на стороне прокси валидных SSL-ключей и сертификатов, используемых на основном сервере).


Источник: http://www.opennet.ru/opennews/art.shtml?num=34523