Pound proxy под Windows

Pound это обратный прокси и балансировщик нагрузки для протоколов HTTP и HTTPS. Отличительные способности включают в себя возможность фронтальной обработки SSL и распределения на обслуживающие сервера в виде HTTP, дезинфекция HTTP и HTTPS на предмет неправильно сформированных запросов, балансировка по состоянию сессии и другим параметрам (URL, идентификации (Basic HTTP), кукам (cookies), HTTP headers). Полная поддержка WebDAV. В режиме балансировки он сам определяет, отвалился ли бекэнд и перенаправляет весь трафик на оставшиеся, периодически чекая отвалившейся хост. Как только Backend восстановился, Pound начинает перебрасывать трафик и на него.

Pound имеет встроенный механизм балансировки и проверки работоспособности обслуживающих серверов. Разработчики отмечают что дизайн изначально был спланирован из принципа не вмешиваться в проходящий трафик, исходя из этого не используют методы встраивания “печенек” и т.п. в сессии, довольно таки на прямую намекая на противоположность методам HAProxy. Несмотря на это замечание, может встраивать в хедэры “X-Forwarded-for” для передачи на бэкенд сервера IP адрес пользователя с целью записи в логи и т.п. Изначально проект разрабатывался как фронтэнд для нескольких серверов Zope (ZEO). Считается легковесным и безопасным, т.к. практически не обращается к диску (кроме чтения сертификатов SSL во время загрузки). Встроенных механизмов отказоустойчивости не имеет.
Проект скромен, манией величия не страдает. Установка и настройка не представляют больших сложностей. Существуют неофициальные пакеты под крупные сборки Линукса, на сайте распространяется только в виде сорсов. Официально тестирован на Линуксе, OpenBSD и Solaris. О использующих проект данных не много, но часто упоминается как решение для балансировки HTTPS в связке с другими решениями.

Чтобы скомпилировать Pound под Windows, используйте CygWin со следующими пакетами: coreutils, cygutils, findutils, gcc-core, gcc-g++, m4, openssl, openssl-devel, rebase, tar, w32api. Их необходимо отметить во время установки вот так:

Копируем следующие файлы в папку, например, C:\Apps\Pound:
cygssl-0.9.8.dll
cygcrypto-0.9.8.dll
cygrunsrv.exe
cygwin1.dll
pound.exe
cygz.dll

Запускаем Cygwin Terminal, переходим в папку с исходниками Pound и выполняем команду:

Затем даем команду

Чтобы запустить “фунт” как службу Windows, с ведением логов, используйте следующую команду с утилитой cygrunsrv от CygWin:

Пример конфига, показывающий весь широкий функционал Pound:

Скачать скомпилированный Pound под Windows:
pound-2.7.exe.cab