HAProxy

HAProxy
Скриншот программы HAProxy
Автор Willy Tarreau
Разработчик HAProxy Technologies[вд]
Написана на C
Операционные системы Linux, FreeBSD, OpenBSD, Solaris (8/9/10), AIX (5.1-5.3)
Последняя версия 2.7.5 (17 марта 2023)
Тестовая версия
Репозиторий github.com/haproxy
Лицензия GNU General Public License v2
Сайт haproxy.org

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).

Возможности

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

История

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

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

См. также

Примечания

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

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.