Как разместить несколько служб Web API на одном и том же порту в сервисной фабрике в Azure - PullRequest
0 голосов
/ 09 января 2019

У меня есть один кластер Service Fabric в Azure, на котором в настоящее время размещен API-интерфейс для порта 443. Мой кластер использует стандартную минимальную настройку из 5 узлов. Все узлы являются виртуальными машинами Windows. Если я хочу разместить второй API, который прослушивает тот же порт, какие возможные решения у меня есть?

Например:

serviceA.myDomain.com:443 -> deploys to all nodes, listens on port 443
serviceB.myDomain.com:443 -> can't deploy to all nodes since port 443 is already in use.

Это все службы без сохранения состояния, использующие .NET Framework (не ядро ​​.NET), и в настоящее время я использую Owin в качестве прослушивателя связи, поэтому похоже, что HttpSys не может быть опцией для совместного использования портов, поскольку большинство ссылок смотрел на использование ядра .NET при его использовании.

Похоже, что Service Fabric имеет концепцию ограничений размещения узлов, описанную здесь: Ограничения размещения узлов

У меня возникла мысль добавить дополнительные узлы, ограничить определенные службы для развертывания на определенных типах узлов, а затем использовать что-то вроде Управление API-интерфейсом Azure для направления трафика на правильный API. Будет ли это жизнеспособным вариантом? Если нет, то какие некоторые подходы я могу использовать?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Привязка нескольких сайтов \ API с использованием SSL к одному и тому же IP была очень сложной задачей, есть хорошая запись в блоге здесь с некоторыми подробностями по теме, основанной на IIS. Фреймворк DotNet будет использовать те же понятия.

Основная проблема заключается в том, что браузеру необходимо согласовать сертификат до того, как он начнет отправлять запросы на сервер, введение SNI сделало это возможным, но управлять им по-прежнему довольно сложно. Net Framework (не ядро ​​с Kestrel).

Самый простой способ - использовать порт, который динамически распределяется, и размещать Proxy \ Gateway перед службами, настроенными для переадресации на основе хоста.

Рекомендация, которую я даю вам, - загляните в Traefik и посмотрите, поможет ли вам ваша проблема.

0 голосов
/ 10 января 2019

Посмотрите на Служба DNS в Azure Service Fabric

Похоже, это то, чего вы хотите достичь, и использование службы DNS должно привести вас туда, где вы должны быть

enter image description here

...