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

Балансировка нагрузки в пределах 2 серверов

У меня есть веб-приложение, которое в настоящее время работает на одном сервере LAMP, и я планирую разделить его на два сервера, чтобы клиентские запросы доходили до одного из серверов, откуда они будут перенаправлены на второй сервер в случае нагрузки на первый высокий. Запросы поступают в айпи адрес моего текущего сервера (не доменное имя).
Как я могу этого добиться?

Надеюсь, мой вопрос ясен, прокомментируйте, если потребуется более подробная информация.

Спасибо

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

Вы также можете рассмотреть возможность использования обратного прокси - Squid, Apache, nginx, lighttpd могут предоставить эту функциональность - где полный веб-запрос выполняется на ваш обратный прокси-сервер, а этот обратный прокси-сервер затем перенаправляет этот запрос на один из внутренних веб-серверов. серверы. Это более тяжелый подход к нагрузке, чем LVS, но его гораздо проще изначально настроить.

Ты можешь использовать haproxy. Его можно использовать для реализации балансировки нагрузки и проксирования для приложений на базе TCP и HTTP. Он имеет множество алгоритмов балансировки нагрузки, таких как циклический перебор и наименьшее соединение.

Имейте в виду, как создается ваше приложение, у вас есть 2 вида балансировщика нагрузки:

Липкий балансировщик нагрузки: каждый клиент подключается к одному серверу (с липким сеансом), он работает с любым приложением, но это не «настоящая» балансировка нагрузки, потому что ваш клиент остается на этом сервере, и если ваш сервер перестает работать, клиенты придерживаться этого сервера не сможет использовать ваш сайт (временно)

Простой балансировщик нагрузки: каждый клиент случайным образом (или в зависимости от таких параметров, как загрузка сервера, количество запросов и т. Д.) Отправляется на новый сервер при каждом запросе. Это лучший вариант, но ваше веб-приложение должно быть настроено для этого, вам необходимо синхронизировать сеансы и, если возможно, кеш между разными серверами (например, с memcached), и он может предоставлять HA (например, с HAProxy), он обнаруживает неработающие серверы и автоматически прекращает отправку на них клиентов.