HAProxy
HAProxy — это веб-сервер с очень узкой специализацией. Его основная задача — распределение нагрузки и создание отказоустойчивости на серверах. ПО перенаправляет запросы пользователей согласно правилам, которые задает администратор сайта. Работает по протоколам TCP и HTTP.
HAProxy известный продукт во всем мире. Его используют крупные ИТ-компании: Avito, DevianArt, Github, Twitter и др. Продукт работает только на операционных системах семейства Unix и поставляется бесплатно.
Функциональность
- Балансировщик нагрузки. Утилита перенаправляет запросы на менее нагруженные серверы, чтобы увеличить скорость обработку данных и предоставлять ответы на запросы своевременно.
- Мониторинг. HAProxy регулярно наблюдают за всеми серверами, которые указаны в качестве альтернативных. В случае увеличения нагрузки на одном из них запросы начинают поступать на другие. Мониторинг происходит в режиме реального времени.
- Резервирование. При необходимости администратор задает правила на веб-сервере, согласно которым HAProxy закрепляет определенных клиентов за выделенным сервером либо серверами.
- Поддержка TLS SNI. Плагин позволяет выделять входящие запросы с протоколом HTTPS, которые отправляются на выделенный сервер, если задан шаблон обработки.
- Простая интеграция. HAProxy легко инсталлируется и внедряется в существующие кластеры.
Конфигурация
HAProxy гибок в настройке. Программный продукт содержит 5 основных разделов для конфигурации.
- Global. Модуль отвечает за общие настройки программного продукта, например, синхронизацию времени, адрес записи лог-файла и т. д.
- Defaults. Конфигурационный файл отвечает за настройки, которые используются утилитой по умолчанию.
- Listen. Компонент содержит в себе полное описание прокси и сведения о 2 последних разделах.
- Frontend. Определяет способ, которым запросы передаются на обработку, выбор зависит от типа запроса.
- Backend. Отвечает за балансировку нагрузки между серверами в зависимости от выбранного типа обработки входящей информации.
Каждый из вышеперечисленных конфигурационных файлов может быть настроен администратором под свои задачи. Утилита поддерживает функцию распределения запросов.
Как правило, первые 3 файла подвергаются минимальными изменениями или вообще не редактируются, а 2 последних полностью меняются под текущие нагрузки сайта.
HAProxy полностью бесплатный продукт и отвечает только за определенные задачи, а также отлично справляется со сжатием HTTP-трафика.