Конфигурация приложения Laravel с балансировкой нагрузки в Forge

Я хочу добавить балансировщик нагрузки в мою кузницу в цифровом океане.

Конфигурация мне бы понравилась

Веб-серверы балансировки нагрузки (nginx) @ 2-4 сервера БД

Мне интересно, в какой конфигурации должны быть эти экземпляры.

У меня есть веб-серверы @ наименьший экземпляр и остановка / удаление mariadb 512 МБ / 20 ГБ

Сервер БД 2 ГБ / 40 ГБ

Я понятия не имею, какой должна быть конфигурация балансировщика нагрузки.

Я знаю, что это зависит от трафика, который собирается получить сайт, но было бы здорово получить представление о отправной точке. Если у вас есть 100 000 посещений в день или где находятся критические точки балансировки нагрузки.

Я думал об использовании Redis для управления состоянием сеанса. Нужно ли настраивать отдельный сервер для запуска этого или я могу запустить его на своем балансировщике нагрузки?

1 ответ

Решение

Я не совсем уверен, о чем идет речь, но я постараюсь рассмотреть все разделы как можно лучше.

Как правило, балансировка нагрузки через nginx настраивается следующим образом: балансировщик нагрузки> веб-сервер> сервер БД. То есть балансировщик нагрузки запрашивает страницу с веб-сервера, а веб-сервер получает данные с сервера БД.

Логично, что это будет выглядеть так (хотя у него больше, чем нужно)

Но как это физически настроено, это будет выглядеть так

Так что, это будет под тем же VLAN. Вы можете настроить его по-другому, но это просто самая распространенная настройка.


На вопрос о том, как настроить конфигурацию, у digital-ocean уже есть руководство. https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-load-balancing

Наиболее важной частью является добыча. Он определяет, на какой веб-сервер он собирается и с весами, сколько его куда-то направлено.


Вопрос о том, сколько нагрузки может выдержать балансировщик нагрузки, зависит от того, сколько вы спрашиваете о балансировщике нагрузки. Правила в nginx могут быть довольно сложными и продолжительными. Могут даже быть сценарии, когда вам приходится писать некрасивые операторы if. У вас может быть много настраиваемых сценариев для определенных IP-адресов. Все эти вещи, которые должна пройти конфигурация, увеличат нагрузку на запрос.

В очень простой конфигурации 100000 запросов в день - это ничтожно малая сумма для обработки большинством серверов. Балансировка нагрузки сама по себе не делает много работы. Поэтому вполне возможно, что наименьший экземпляр может легко обрабатывать 100 тыс. Запросов (при условии отсутствия узкого места в полосе пропускания), но я не знаю, с уверенностью сказать, о пакетах цифрового океана.

Так что, если вы чувствуете, что использование только балансировщика нагрузки на сервере - пустая трата его ресурсов, вы, безусловно, можете проделать дополнительную работу, например, redis. Но это полностью зависит от вас.

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

Другие вопросы по тегам