У нас есть ~ 60 клиентских приложений, каждое со своим собственным URL-адресом субдомена в общем домене, то есть client1.domainname.com, client2.domainname.com ... - все они покрываются одним шаблоном SSL-сертификата * .domainname.com. В настоящее время размещается локально с парой LB и двумя внутренними узлами IIS с использованием заголовков узлов для URL-адресов поддоменов и привязки сеансов cookie.
Нам нужно перенести эту среду в Azure и использовать шлюз приложений. К сожалению, у AG есть серьезные ограничения. https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits?toc=%2fazure%2fapplication-gateway%2ftoc.json#application-gateway-limits, а именно:
1) HTTP Listeners 20
2) Number of sites 20 1 per HTTP Listeners
3) URL Maps per listener 1
Вопросы:
A) относительно # 2, может быть подстановочный домен *. domainname.com рассматривается как 1 сайт / используется в Имя хоста свойство определения слушателя?
Б) локальных серверных узлов всего 2, и мы предпочитаем то же самое в Azure для экономии средств; Я понимаю, что несколько наборов AG не могут указывать на одни и те же серверные виртуальные машины. Может ли обходной путь для этого иметь несколько виртуальных сетевых адаптеров на виртуальную машину и указывать на разные наборы AG, то есть набор AG1-> первичный vNIC0, набор AG2-> вторичный vNIC1, набор AG3-> вторичный vNIC2?
Извините за загруженный вопрос, но я надеюсь, что другие сочтут этот пост очень полезным, поскольку подробную информацию по этой теме получить нелегко.
Пример слушателя:
"httpListeners": [
{
"name": "appGatewayHttpsListener1",
"properties": {
"FrontendIPConfiguration": {
"Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/frontendIPConfigurations/DefaultFrontendPublicIP"
},
"FrontendPort": {
"Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/frontendPorts/appGatewayFrontendPort443'"
},
"Protocol": "Https",
"SslCertificate": {
"Id": "/subscriptions/<subid>/resourceGroups/<rgName>/providers/Microsoft.Network/applicationGateways/applicationGateway1/sslCertificates/appGatewaySslCert1'"
},
"HostName": "domainname.com" ,
"RequireServerNameIndication": "true"
}
},
Если я правильно понял ваш вопрос, вам НЕ ТРЕБУЕТСЯ указывать путь для слушателя. Вместо этого вы можете использовать один глобальный прослушиватель для охвата всего вашего * .domain.com. Это помогает?