HAProxy

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
HAProxy
Автор

Willy Tarreau

Написана на

C

Операционная система

Linux, FreeBSD, OpenBSD, Solaris (8/9/10), AIX (5.1-5.3)

Последняя версия

1.8.1 (2017-12-03; 49 дней тому назад)

Тестовая версия

1.8-dev0 (2016-11-25; 422 дня тому назад)

Лицензия

GNU General Public License v2

Сайт

haproxy.org

HAProxy — серверное программное обеспечение для обеспечения высокой доступности и балансировки нагрузки для TCP и HTTP-приложений, посредством распределения входящих запросов на несколько обслуживающих серверов.[1] Программа написана на C[2].

HAProxy используется в ряде высоконагруженных веб-сайтов, включая Twitter[3], Instagram[3] Github[4], Stack Overflow,[5] Reddit, Tumblr, Avito и OpsWorks product из Amazon Web Services[6], W3C (W3C Validator)[3], а также является частью облачной платформы Red Hat OpenShift[7] и балансировщиком по умолчанию в облачной платформе OpenStack.

HAProxy является программой с открытым исходным кодом и распространяется в соответствии с GNU General Public License (GNU GPL v2).

Возможности[править | править код]

  • Периодическая проверка доступности обслуживающих (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[8].

Производительность[править | править код]

2007 год: Типичные 1U сервера оснащённые двухъядерным процессором Opteron или Xeon обычно достигали производительности от 15 000 до 40 000 запросов/сек и не имели проблем с обслуживанием потока до 2 Гбит/с под ОС Linux.[9]

2014 год: 1U сервера оснащённые Xeon E5 (2014 года) и 10 Гбит/с сетевой картой без проблем обрабатывают поток 40—60 Гбит/с, при этом подчёркивается, что ограничивающим фактором является пропускная способность сетевой карты.[10]

Даже на процессоре Intel Atom 1,6 ГГц (с пассивным воздушным охлаждением) HAProxy удалось обрабатывать поток до 1 ГБит/с.[10]

Расход памяти: 1 Гб ОЗУ хватает для обслуживания ~20 000—30 000 одновременных сессий.

История[править | править код]

Willy Tarreau[11] (один из основных разработчиков ядра Linux[12]) написал HAProxy в 2000 году и до сих пор занимается её разработкой.

В 2015 году, подводя итоги релиза HAProxy 1.6, Вилли отметил, что из более чем 1150 коммитов принятых в ветку 1.6, более 1/3 были сделаны сообществом.

См. также[править | править код]

Примечания[править | править код]

  1. MySQL Load Balancing with HAProxy. Severalnines AB (2011). Проверено 19 февраля 2013.
  2. HAProxy on Freecode. Проверено 5 апреля 2013.
  3. 1 2 3 HAProxy: they use it!. Проверено 22 июня 2014.
  4. список сайтов использующих HAProxy. Проверено 22 июня 2014. Архивировано 10 июня 2013 года.
  5. What it takes to run Stack Overflow. Проверено 22 ноября 2013.
  6. HAProxy layer - AWS Opsworks. Проверено 5 апреля 2013.
  7. OpenShift: How Scaling Works. Проверено 22 сентября 2014.
  8. May, 15th, 2015 : HTTP/2 is out!
  9. haproxy.org/#plat
  10. 1 2 haproxy.org/#perf
  11. Willy Tarreau: About me. Проверено 5 апреля 2013.
  12. ,LKML: Willy Tarreau: [ANNOUNCE Linux 2.4.37.11]. Проверено 5 апреля 2013.

Ссылки[править | править код]