HAProxy: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Используем более актуальную информацию о версиях из wikidata
 
(не показано 12 промежуточных версий 10 участников)
Строка 1: Строка 1:
{{Infobox software
{{Infobox software
| name =
| name =
| title =
| title =
| logo = <!-- Image name is enough -->
| logo = <!-- Image name is enough -->
| logo caption =
| logo caption =
| logo_size =
| logo_size =
| logo_alt =
| logo_alt =
| screenshot = <!-- Image name is enough -->
| screenshot = <!-- Image name is enough -->
| caption =
| caption =
| screenshot_size =
| screenshot_size =
| screenshot_alt =
| screenshot_alt =
| collapsible =
| collapsible =
| author = Willy Tarreau
| author = Willy Tarreau
| developer =
| developer =
| released = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| released = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| последняя версия = 2.7.5
| discontinued =
| дата последней версии = 17 марта 2023
| status =
| discontinued =
| programming language = [[Си (язык программирования)|C]]
| status =
| operating system = [[Linux]], [[FreeBSD]], [[OpenBSD]], [[Solaris]] (8/9/10), [[AIX]] (5.1-5.3)
| programming language = [[Си (язык программирования)|C]]
| platform =
| operating system = [[Linux]], [[FreeBSD]], [[OpenBSD]], [[Solaris]] (8/9/10), [[AIX]] (5.1-5.3)
| size =
| platform =
| language =
| size =
| language count = <!-- DO NOT include this parameter unless you know what it does -->
| language footnote =
| language =
| language count = <!-- DO NOT include this parameter unless you know what it does -->
| genre =
| language footnote =
| license = [[GNU General Public License]] v2
| genre =
| website = {{URL|http://www.haproxy.org/}}
| license = [[GNU General Public License]] v2
| website = {{URL|https://www.haproxy.org/}}
}}
}}


'''HAProxy''' — серверное программное обеспечение для обеспечения [[высокая доступность|высокой доступности]] и [[Балансировка нагрузки|балансировки нагрузки]] для [[Transmission Control Protocol|TCP]] и [[Hypertext Transfer Protocol|HTTP]]-приложений, посредством распределения входящих запросов на несколько обслуживающих серверов.<ref>{{cite web |url=http://www.severalnines.com/resources/clustercontrol-mysql-haproxy-load-balancing-tutorial#what |title=MySQL Load Balancing with HAProxy |author=<!--Staff writer(s); no by-line.--> |year=2011 |publisher=Severalnines AB |accessdate=19 February 2013}}</ref> Программа написана на [[Си (язык программирования)|C]]<ref>{{cite web|url=http://freecode.com/projects/haproxy|accessdate=5 April 2013|title=HAProxy on Freecode}}</ref>.
'''HAProxy''' — серверное программное обеспечение для обеспечения [[высокая доступность|высокой доступности]] и [[Балансировка нагрузки|балансировки нагрузки]] для [[Transmission Control Protocol|TCP]]- и [[Hypertext Transfer Protocol|HTTP]]-приложений посредством распределения входящих запросов на несколько обслуживающих серверов.<ref>{{cite web |url=https://severalnines.com/resources/whitepapers/mysql-load-balancing-with-haproxy/|title=MySQL Load Balancing with HAProxy |author=<!--Staff writer(s); no by-line.--> |year=2011 |publisher=Severalnines AB |accessdate=2013-02-19 |archive-date=2015-02-08 |archive-url=https://web.archive.org/web/20150208084005/http://www.severalnines.com/resources/clustercontrol-mysql-haproxy-load-balancing-tutorial#what |deadlink=no }}</ref> Программа написана на [[Си (язык программирования)|C]]<ref>{{cite web|url=http://freecode.com/projects/haproxy|accessdate=2013-04-05|title=HAProxy on Freecode|archive-date=2017-11-03|archive-url=https://web.archive.org/web/20171103083717/http://freecode.com/projects/haproxy|deadlink=no}}</ref>.


HAProxy используется в ряде высоконагруженных веб-сайтов, включая [[Twitter]]<ref name=autogenerated2>{{cite web|url=http://haproxy.1wt.eu/they-use-it.html|accessdate=22 June 2014|title=HAProxy: they use it!}}</ref>, [[Instagram]]<ref name=autogenerated2 /> [[Github]]<ref>{{cite web|url=http://lineofthought.com/tools/haproxy|accessdate=22 June 2014|title=список сайтов использующих HAProxy|deadurl=yes|archiveurl=https://web.archive.org/web/20130610013420/http://lineofthought.com/tools/haproxy|archivedate=2013-06-10}}</ref>, [[Stack Overflow]],<ref>{{cite web|url=http://nickcraver.com/blog/2013/11/22/what-it-takes-to-run-stack-overflow/|accessdate=22 November 2013|title=What it takes to run Stack Overflow}}</ref> [[Reddit]], [[Tumblr]], [[DeviantArt]], [[Avito]] и OpsWorks product из [[Amazon Web Services]]<ref>{{cite web|title=HAProxy layer - AWS Opsworks|url=http://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-load.html|accessdate=5 April 2013}}</ref>,
HAProxy используется в ряде высоконагруженных веб-сайтов, включая [[Twitter]]<ref name=autogenerated2>{{cite web|url=http://haproxy.1wt.eu/they-use-it.html|accessdate=2014-06-22|title=HAProxy: they use it!|archive-date=2014-02-17|archive-url=https://web.archive.org/web/20140217220537/http://haproxy.1wt.eu/they-use-it.html|deadlink=no}}</ref>, [[Instagram]]<ref name=autogenerated2 /> [[Github]]<ref>{{cite web|url=http://lineofthought.com/tools/haproxy|accessdate=2014-06-22|title=список сайтов использующих HAProxy|deadurl=yes|archiveurl=https://web.archive.org/web/20130610013420/http://lineofthought.com/tools/haproxy|archivedate=2013-06-10}}</ref>, [[Stack Overflow]],<ref>{{cite web|url=http://nickcraver.com/blog/2013/11/22/what-it-takes-to-run-stack-overflow/|accessdate=2013-11-22|title=What it takes to run Stack Overflow|archive-date=2020-11-11|archive-url=https://web.archive.org/web/20201111194648/http://nickcraver.com/blog/2013/11/22/what-it-takes-to-run-stack-overflow/|deadlink=no}}</ref> [[Reddit]], [[Tumblr]], [[DeviantArt]], [[Avito]] и OpsWorks product из [[Amazon Web Services]]<ref>{{cite web|title=HAProxy layer - AWS Opsworks|url=http://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-load.html|accessdate=2013-04-05|archive-date=2015-09-05|archive-url=https://web.archive.org/web/20150905180437/http://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-load.html|deadlink=no}}</ref>,
[[W3C]] (W3C Validator)<ref name=autogenerated2 />, а также является частью облачной платформы [[Red Hat]] [[OpenShift]]<ref>{{cite web|url=https://developers.openshift.com/en/overview-platform-features.html#how-scaling-works|accessdate=22 September 2014|title=OpenShift: How Scaling Works}}</ref> и балансировщиком по умолчанию в облачной платформе [[OpenStack]].
[[W3C]] (W3C Validator)<ref name=autogenerated2 />, а также является частью облачной платформы [[Red Hat]] [[OpenShift]]<ref>{{cite web|url=https://developers.openshift.com/en/overview-platform-features.html#how-scaling-works|accessdate=2014-09-22|title=OpenShift: How Scaling Works|archive-date=2014-09-13|archive-url=https://web.archive.org/web/20140913195525/https://developers.openshift.com/en/overview-platform-features.html#how-scaling-works|deadlink=no}}</ref> и балансировщиком по умолчанию в облачной платформе [[OpenStack]].


HAProxy является программой с [[Открытое программное обеспечение|открытым исходным кодом]] и распространяется в соответствии с [[GNU General Public License]] (GNU GPL v2).
HAProxy является программой с [[Открытое программное обеспечение|открытым исходным кодом]] и распространяется в соответствии с [[GNU General Public License]] (GNU GPL v2).
Строка 44: Строка 46:
* Поддержка переменных, цитирования{{термин}} блоков и [[Lua]]-скриптов в конфигурации сервера;
* Поддержка переменных, цитирования{{термин}} блоков и [[Lua]]-скриптов в конфигурации сервера;
* [[Веб-интерфейс]] с актуальным состоянием и статистикой работы программы;
* [[Веб-интерфейс]] с актуальным состоянием и статистикой работы программы;
* Поддержка [[HTTP/2]]<ref>[http://www.haproxy.org/news.html May, 15th, 2015 : HTTP/2 is out! ]</ref>.
* Поддержка [[HTTP/2]]<ref>{{Cite web |url=http://www.haproxy.org/news.html |title=May, 15th, 2015 : HTTP/2 is out! |access-date=2016-01-06 |archive-date=2016-01-13 |archive-url=https://web.archive.org/web/20160113145044/http://www.haproxy.org/news.html |deadlink=no }}</ref>.


== Производительность ==
== Производительность ==
'''2007 год''': Типичные 1U сервера оснащённые двухъядерным процессором Opteron или Xeon обычно достигали производительности от 15 000 до 40 000 запросов/сек и не имели проблем с обслуживанием потока до 2 Гбит/с под ОС [[Linux]].<ref>{{URL|http://www.haproxy.org/#plat}}</ref>
'''2007 год''': Типичные 1U серверы оснащённые двухъядерным процессором Opteron или Xeon обычно достигали производительности от {{num|15000}} до {{num|40000}} запросов/сек и не имели проблем с обслуживанием потока до 2 Гбит/с под ОС [[Linux]].<ref>{{URL|http://www.haproxy.org/#plat}}</ref>


'''2014 год''': 1U сервера оснащённые Xeon E5 (2014 года) и 10 Гбит/с сетевой картой без проблем обрабатывают поток 40—60 Гбит/с, при этом подчёркивается, что ограничивающим фактором является пропускная способность сетевой карты.<ref name=autogenerated1>{{URL|http://www.haproxy.org/#perf}}</ref>
'''2014 год''': 1U серверы оснащённые Xeon E5 (2014 года) и 10 Гбит/с сетевой картой без проблем обрабатывают поток 40—60 Гбит/с, при этом подчёркивается, что ограничивающим фактором является пропускная способность сетевой карты.<ref name=autogenerated1>{{URL|http://www.haproxy.org/#perf}}</ref>


Даже на процессоре Intel Atom 1,6 ГГц (с пассивным воздушным охлаждением) HAProxy удалось обрабатывать поток до 1 ГБит/с.<ref name=autogenerated1 />
Даже на процессоре Intel Atom 1,6 ГГц (с пассивным воздушным охлаждением) HAProxy удалось обрабатывать поток до 1 ГБит/с.<ref name=autogenerated1 />
Строка 56: Строка 58:


== История ==
== История ==
Willy Tarreau<ref>{{cite web|url=http://1wt.eu/#wami|accessdate=5 April 2013|title=Willy Tarreau: About me}}</ref> (один из основных разработчиков ядра [[Linux]]<ref>,{{cite web|url=https://lkml.org/lkml/2010/12/18/73 |title=LKML: Willy Tarreau: [ANNOUNCE] Linux 2.4.37.11 |accessdate=5 April 2013}}</ref>) написал HAProxy в 2000 году и до сих пор занимается её разработкой.
Willy Tarreau<ref>{{cite web|url=http://1wt.eu/#wami|accessdate=2013-04-05|title=Willy Tarreau: About me|archive-date=2013-04-02|archive-url=https://web.archive.org/web/20130402052537/http://1wt.eu/#wami|deadlink=no}}</ref> (один из основных разработчиков ядра [[Linux]]<ref>,{{cite web |url=https://lkml.org/lkml/2010/12/18/73 |title=LKML: Willy Tarreau: [ANNOUNCE] Linux 2.4.37.11 |accessdate=2013-04-05 |archive-date=2012-06-15 |archive-url=https://web.archive.org/web/20120615234050/http://lkml.org/lkml/2010/12/18/73 |deadlink=no }}</ref>) написал HAProxy в 2000 году и до сих пор занимается её разработкой.


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


== Ссылки ==
== Ссылки ==
* {{Official website|http://www.haproxy.org/}}
* {{Официальный сайт|https://www.haproxy.org/}}
* [http://www.haproxy.org/they-use-it.html HAProxy.org/they-use-it.html — список популярных веб-сервисов, использующих в своей работе HAProxy]
* [https://github.com/haproxy/haproxy/ исходный код] на [[GitHub]]
* [https://www.haproxy.org/they-use-it.html They use it] — список популярных веб-сервисов, использующих в своей работе HAProxy
* [http://blog.loadbalancer.org/open-source-windows-service-for-reporting-server-load-back-to-haproxy-load-balancer-feedback-agent/ Windows feedback agent for HAProxy]
* [https://www.loadbalancer.org/blog/open-source-windows-service-for-reporting-server-load-back-to-haproxy-load-balancer-feedback-agent/ Windows feedback agent for HAProxy]


{{rq|check}}<!-- производительность -->
{{rq|check}}<!-- производительность -->
[[Категория:Свободные веб-серверы]]
[[Категория:Программное обеспечение с лицензией GNU GPL]]
[[Категория:Производительность компьютерных сетей]]
[[Категория:Производительность компьютерных сетей]]
[[Категория:Свободное программное обеспечение, написанное на Си]]

Текущая версия от 10:23, 16 сентября 2023

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/hapro…
Лицензия 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, 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. Архивировано 8 февраля 2015 года.
  2. HAProxy on Freecode. Дата обращения: 5 апреля 2013. Архивировано 3 ноября 2017 года.
  3. 1 2 3 HAProxy: they use it! Дата обращения: 22 июня 2014. Архивировано 17 февраля 2014 года.
  4. список сайтов использующих HAProxy. Дата обращения: 22 июня 2014. Архивировано из оригинала 10 июня 2013 года.
  5. What it takes to run Stack Overflow. Дата обращения: 22 ноября 2013. Архивировано 11 ноября 2020 года.
  6. HAProxy layer - AWS Opsworks. Дата обращения: 5 апреля 2013. Архивировано 5 сентября 2015 года.
  7. OpenShift: How Scaling Works. Дата обращения: 22 сентября 2014. Архивировано 13 сентября 2014 года.
  8. May, 15th, 2015 : HTTP/2 is out! Дата обращения: 6 января 2016. Архивировано 13 января 2016 года.
  9. haproxy.org/#plat
  10. 1 2 haproxy.org/#perf
  11. Willy Tarreau: About me. Дата обращения: 5 апреля 2013. Архивировано 2 апреля 2013 года.
  12. ,LKML: Willy Tarreau: [ANNOUNCE] Linux 2.4.37.11. Дата обращения: 5 апреля 2013. Архивировано 15 июня 2012 года.