Существует ли подсистема балансировки нагрузки программного обеспечения Linux HA, которая служит HTTPS для нескольких несвязанных доменных имен, но балансов к единственному кластеру веб-сервера?

У меня на самом деле была подобная проблема в эти выходные - в моем случае, я поднял DC без сетевого соединения случайно (переключатель не закончил включение). Я перезагрузил его с активным сетевым соединением, и это хорошо работало после этого.

5
задан 4 February 2012 в 00:33
2 ответа

Обновление 2017-09-13: SNI в настоящее время стал достаточно распространенным в основных браузерах, чтобы его можно было использовать для обработки запроса, и этот ответ следует считать устаревшим.


Единственный способ поддержать это - иметь IP для каждого из ваших клиентов. Когда вы подключаетесь через https, соединение шифруется сразу , у браузера нет возможности сказать «Я здесь для foo.tenantA.com». Таким образом, единственный способ для сервера узнать, какой сертификат SSL следует использовать для шифрования соединения, основан на IP-адресе, с которого произошло соединение.

Теперь это все еще возможно, но это означает, что вам понадобится много IP-адресов. На самом деле мы делаем именно такую ​​настройку на моей работе. У нас есть 2 активных / активных балансировщика нагрузки, половина IP-адресов на одном балансировщике, другая половина - на другом балансировщике (всего около 500 IP-адресов). Затем у нас есть несколько веб-серверов на внутренней стороне, которые принимают все соединения. Любой веб-сервер может выйти из строя, и балансировщик нагрузки перестанет отправлять ему соединения. Или сам балансировщик нагрузки может выйти из строя, и другой заберет все свои IP-адреса.
Программное обеспечение для балансировки нагрузки, которое делает это, - это Pacemaker и ldirectord (оба являются основными проектами, и в любом используемом вами дистрибутиве они должны быть в своем репозитории). Само ядро ​​Linux выполняет балансировку нагрузки, а программное обеспечение отвечает только за обработку отказов.

Примечание: для балансировки нагрузки существует множество альтернатив ldirectord, например keepalived и верный . Хотя для фактического программного обеспечения восстановления после сбоя балансировщика нагрузки вам следует использовать кардиостимулятор.

Основные руководства:

  • Это содержит основные инструкции по настройке кардиостимулятора. Вы можете пропустить все предыдущее, поскольку CMAN является его заменой. Единственное, что вам нужно сделать, чтобы дойти до этого пункта в руководстве, - это установить кардиостимулятор и его зависимости. Остановитесь на разделе 8.2.4. Вам не нужно переходить к разделу 8.3, поскольку он не имеет отношения к тому, что вы делаете.

  • После того, как у вас работает кардиостимулятор, этот предоставит очень простую конфигурацию для балансировки нагрузки http-сервера.

  • ] Вы также можете посмотреть это и это . Это более подробный обзор кардиостимулятора, того, что он делает и как его использовать.

5
ответ дан 3 December 2019 в 01:40

А как насчет того, чтобы просто порекомендовать клиенту самому накинуть на него тонкую оболочку? Примерно так:

  1. Конечный пользователь отправляет запрос на https://api.tenantA.com
  2. api.tenantA.com просто перенаправляет запрос на https: // tenanta. foo.com
  3. Ответ затем фильтруется таким же образом.

Я предполагаю, что пока это скорее пограничный случай, он должен работать нормально.

0
ответ дан 3 December 2019 в 01:40

Теги

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