Сейчас у нас есть только один внутренний сервер на каждый сайт / веб-службу. Мне было бы интересно услышать об опыте людей с различными приложениями балансировки нагрузки (что-то, что работает в 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.