Назад | Перейти на главную страницу

Программный балансировщик нагрузки http?

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

Что бы вы порекомендовали?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я большой поклонник многослойных LB Zeus ZXTM - нажмите ВОТ

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