Программное обеспечение http балансировки нагрузки?

19

Прямо сейчас у нас есть только один внутренний сервер на сайт / веб-сервис. Мне было бы интересно услышать, как люди взаимодействуют с различными приложениями для балансировки нагрузки (которые работают в Linux).

Чтобы вы посоветовали?

Марк Ренуф
источник

Ответы:

13

Согласно эпизоду 27 из подкастов StackOverflow , что Reddit ребята действительно , кажется, как HAProxy . Вот краткое руководство, показывающее, как HAProxy используется с Amazon EC2 . Вы можете найти гораздо больше информации на веб-сайте HAProxy .

Джон Сиракуза
источник
3
Я использую HAProxy на нескольких производственных серверах и люблю его. Он прост в настройке и даже имеет простой веб-интерфейс для проверки его статуса и статистики в режиме реального времени. Скринкаст, который помог мне настроить мой первый экземпляр HAProxz, можно найти в [блоге «Сигнал против шума»] [1] [1]: 37signals.com/svn/posts/1073-nuts-bolts-haproxy
Уэс Олден, который
Я забыл об аспекте управляемости. Это звучит очень мило.
Марк Ренуф
21

Вопрос не содержит конкретной информации о нагрузке, необходимых функциях и т. Д., Поэтому любой ответ в лучшем случае является предположением.

Фунт - хороший выбор для небольших и средних предприятий. Он предлагает поддержку HTTPS и простую настройку.

HAproxy может масштабироваться для насыщения каналов 10G Ethernet и предлагает ограничение соединения, то есть отправку только количества одновременных запросов на каждый внутренний сервер, поскольку у вас есть экземпляры Apache children / Ruby on Rails для обработки.

nginx отлично подходит как универсальный балансировщик нагрузки и статический файловый сервер. Он может выполнять HTTP-сжатие, перезапись URL-адреса и обслуживание статических файлов при балансировке нагрузки.

Apache в серии 2.2 также является довольно хорошим балансировщиком нагрузки. Может делать то же самое, что и nginx, но нагрузка на сервер выше, чем nginx. Очень стоит разобраться, если вы уже знакомы с Apache и очень зрелы.

Perlbal предлагает простое ограничение соединения с внутренними хостами, мультиплексирование запросов через постоянные HTTP-соединения и простую настройку, если вы уже используете Perl.

Кэш Varnish - это обратный HTTP-прокси с базовой поддержкой балансировки нагрузки. Это не очень хороший балансировщик нагрузки, но в некоторых ситуациях его кэширование в памяти большинства запрашиваемых объектов может удалить высокий процент обращений к бэкэнд-серверу, и у него отличная производительность. Включения ESI потенциально интересны.

Я не уверен на 100%, но, вне всяких сомнений, Perlbal и nginx предлагают некоторую поддержку для изменения конфигурации без повторного запуска балансировщика нагрузки. Для больших площадок это очень важно, и это хорошая вещь для хороших коммерческих устройств балансировки нагрузки.

Все вышеперечисленное является балансировщиком нагрузки уровня HTTP (уровень 7). Балансировщики нагрузки на уровне TCP / IP могут достичь более высокой пропускной способности, но ограничены другими способами. Автор HAProxy написал хороший, читаемый обзор методов и проблем балансировки нагрузки: http://1wt.eu/articles/2006_lb/

LVS - широко используемый балансировщик нагрузки на уровне TCP / IP. Большинство брандмауэров также могут выполнять базовую балансировку нагрузки на уровне IP, хэшируя входящий запрос по диапазону внутренних IP-адресов - по крайней мере, PF OpenBSD и Cisco ASA и Juniper Netscreens могут сделать это.

Джеспер М
источник
3

haproxy работает так же хорошо, как и LVS.

Кстати, wordpress.com использует nginx в качестве своего балансировщика / прокси.

Джодер Хо
источник
2

Мы используем LVS в производстве. Он управляется нашей операционной командой с набором сложных и злых сценариев. Довольно умная сделанная на заказ система объявляет данные о работоспособности и производительности от наших реальных серверов, чтобы балансировщик нагрузки мог соответствующим образом устанавливать веса.

LVS, конечно, дает вам единственную точку отказа - балансировщик нагрузки (существуют способы их избыточной настройки).

Я подумал, что это слишком сложно для настройки, поэтому я написал Fluffy Linux Cluster, который был основан на том, как работает Windows NLB (я думаю ... я не уверен, как это работает, хотя), а также вдохновлен CLUSTERIP.

Мы не используем его в работе, но Fluffy может балансировать нагрузку на разумное (минимум 5) серверов без единой точки отказа, без центрального узла управления и т. Д.

MarkR
источник
Хм: LVS, злые сценарии, довольно умные системы на заказ. Ваша установка точно такая же, как наша!
Том Андерсон
2

Я использовал фунт в прошлом. Это быстро, просто и требует минимального внимания.

mryan1
источник
1

Я большой поклонник многослойных LB Zeus ZXTM - нажмите ЗДЕСЬ

Chopper3
источник
1

Если вы решите использовать LVS, я также рассмотрю Keepalived, если вы собираетесь сделать свой серверный уровень балансировки нагрузки высокодоступным. Я использовал Heartbeat / Pacemaker с LVS в течение нескольких месяцев и обнаружил, что он слишком сложен и иногда нестабилен для простого слоя HA LB.

Аарон Буш
источник