Открыть главное меню

HAProxy

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

HAProxy
Автор Willy Tarreau
Написана на C
Операционная система Linux, FreeBSD, OpenBSD, Solaris (8/9/10), AIX (5.1-5.3)
Последняя версия 1.8.10 (2018-06-22; 391 день тому назад)
Тестовая версия 1.9-dev0 (2017-11-26; 599 дней тому назад)
Лицензия GNU General Public License v2
Сайт haproxy.org

HAProxy используется в ряде высоконагруженных веб-сайтов, включая Twitter[3], Instagram[3] Github[4], Stack Overflow,[5] Reddit, Tumblr, DeviantArt, 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.

СсылкиПравить