Какая пропускная способность используется подключением с балансировкой нагрузки с помощью nginx?

У меня есть 3 сервера, каждый со скоростью 100 Мбит / с.

Первый сервер имеет балансировщик нагрузки nginx, настроенный следующим образом :

 http {
 upstream myproject {
 сервер 127.0.0.1:8000 вес = 3;
 сервер 127.0.0.1:8001;
 сервер 127.0.0.1:8002;
 сервер 127.0.0.1:8003;
 }

 server {
 слушать 80;
 имя_сервера www.domain.com;
 место расположения / {
 proxy_pass http: // myproject;
 }
 }
}

На серверах 2 и 3 у меня есть видео.

Я хотел бы знать, если 1 пользователь = 1 Мбит / с тогда, если 10 пользователей посетят server1, он отправит их на сервер 2 или 3? Какая у меня будет пропускная способность на серверах 1, 2 и 3?

-1
задан 9 November 2016 в 03:15
1 ответ

Теоретически, подключение пользователя 10 x 1 Мбит / с к вашей службе через ваш балансировщик нагрузки потребляло бы 10 Мбит / с с точки зрения этого балансировщика нагрузки, тогда, вероятно, что-то например 5 Мбит / с до server2, а другой 5Mbps до до server3.

Имея полнодуплексное соединение 100 Мбит / с на балансировщике нагрузки, вы можете обслуживать до 100x 1 Мбит / с пользователь. С полудуплексным соединением (он все еще существует, IRL?), Вы будете ограничены до 50.


Обновление:

Чтобы уточнить, если вы действительно хотите добавить пропускную способность ваших «внутренних» серверов, тогда «внешний» сервер должен перенаправлять клиентов на любой из этих внутренних интерфейсов.

С точки зрения сети, ваш клиент устанавливает TCP-соединение с вами, «балансировщиком нагрузки». Этот сеанс будет продолжаться, пока вы не создадите еще один где-нибудь еще. Но ваш балансировщик нагрузки будет балансировать трафик, а не перенаправлять его.

Увеличение пропускной способности будет означать:

  • использование некоторого типа DNS с циклическим перебором, ваша общедоступная запись будет указывать на каждый из ваших внутренних серверов. Никаких переписываний. Сбой серверной части приведет к потере клиентских запросов до тех пор, пока вы не обновите DNS или не исправите внутренний сервер
  • , использующий ваш первый сервер для перезаписи клиентов на любой из ваших внутренних серверов. Подразумевается, что ваши внутренние серверы доступны через отдельные общедоступные DNS. Преобразуйте ваш «балансировщик нагрузки» в своего рода «шлюз перезаписи».Это может означать, что некоторые пользовательские сценарии проверяют доступность бэкэндов для переключения блоков конфигурации с точки зрения nginx.

Update², поскольку новые потоки начинают работать по этому вопросу, ...

Один из способов сделать это - получить свой первый сервер с использованием директивы rewrite вместо proxy_pass . Сложность состоит в том, чтобы переписать динамический адрес, в зависимости от того, какой бэкэнд действительно работает, .... Решение приведено здесь: http://www.sourceprojects.org/nginx-stateless-loadbalancer

Другое способ сделать это был бы своего рода циклический DNS. В конце концов, вам может не понадобиться определять запись для server1, ваша зона будет выглядеть примерно так:

$ ORIGIN example.com. myservicename A server2.ip.address myservicename A server3.ip.address

0
ответ дан 5 December 2019 в 20:27

Теги

Похожие вопросы