HAProxy
HAProxy — серверное программное обеспечение для обеспечения высокой доступности и балансировки нагрузки для TCP- и HTTP-приложений посредством распределения входящих запросов на несколько обслуживающих серверов.[2] Программа написана на C[3].
HAProxy используется в ряде высоконагруженных веб-сайтов, включая Twitter[4], Instagram[4] Github[5], Stack Overflow,[6] Reddit, Tumblr, DeviantArt, Avito и OpsWorks product из Amazon Web Services[7], W3C (W3C Validator)[4], а также является частью облачной платформы Red Hat OpenShift[8] и балансировщиком по умолчанию в облачной платформе OpenStack.
HAProxy является программой с открытым исходным кодом и распространяется в соответствии с GNU General Public License (GNU GPL v2).
Общие сведения
| HAProxy | |
|---|---|
| Автор | Willy Tarreau |
| Разработчик | HAProxy Technologies[d] |
| Написана на | C |
| Операционные системы | Linux, FreeBSD, OpenBSD, Solaris (8/9/10), AIX (5.1-5.3) |
| Последняя версия | 2.7.5 (17 марта 2023) |
| Бета-версия | |
| Репозиторий | github.com/haproxy/hapro… |
| Лицензия | GNU General Public License v2 |
| Сайт | haproxy.org |
Возможности
- Периодическая проверка доступности обслуживающих (back-end) серверов, на которые перенаправляются запросы пользователей;
- Несколько алгоритмов определения доступности сервера: tcp-check, http-check, mysql-check;
- Балансировка HTTP / HTTPS / TCP-запросов между «живыми» серверами;
- Поддержка TLS SNI для различения HTTPS-обращений к разным сайтам;
- Возможность закрепления определенных клиентов за конкретными обслуживающими серверами (stick-tables);
- Поддержка: IPv6 и UNIX sockets, HTTP/1.1 сжатие (deflate, gzip, libslz), SSL-шифрование, полная поддержка постоянного HTTP-соединения;
- Поддержка переменных, цитирования блоков и Lua-скриптов в конфигурации сервера;
- Веб-интерфейс с актуальным состоянием и статистикой работы программы;
- Поддержка HTTP/2[9].
Производительность
2007 год: Типичные 1U серверы оснащённые двухъядерным процессором Opteron или Xeon обычно достигали производительности от 15 000 до 40 000 запросов/сек и не имели проблем с обслуживанием потока до 2 Гбит/с под ОС Linux.[10]
2014 год: 1U серверы оснащённые Xeon E5 (2014 года) и 10 Гбит/с сетевой картой без проблем обрабатывают поток 40—60 Гбит/с, при этом подчёркивается, что ограничивающим фактором является пропускная способность сетевой карты.[11]
Даже на процессоре Intel Atom 1,6 ГГц (с пассивным воздушным охлаждением) HAProxy удалось обрабатывать поток до 1 ГБит/с.[11]
Расход памяти: 1 Гб ОЗУ хватает для обслуживания ~20 000—30 000 одновременных сессий.
История
См. также
Примечания
Ссылки
- haproxy.org — официальный сайт HAProxy
- исходный код на GitHub
- They use it — список популярных веб-сервисов, использующих в своей работе HAProxy
- Windows feedback agent for HAProxy