Шлюз приложений Azure с несколькими приложениями в одном внутреннем пуле среды служб приложений.
Я получил в руки проект, в котором шлюз приложений Azure (AGW) использует в качестве внутреннего пула среду службы приложений (ASE) внутреннего балансировщика нагрузки (ILB), содержащую несколько приложений.
AGW настраивается с использованием нескольких многосайтовых прослушивателей, где хост каждого многосайтового прослушивателя соответствует пользовательскому домену в экземпляре службы приложений, работающем в ILB ASE. Как это:
Мне нужно добавить новое приложение в ASE и соответствующую конфигурацию в AGW.
Проблема в том, что AGW может иметь максимум 20 слушателей, что было достигнуто в проекте, который я получил в руки. Поэтому я не могу добавить больше приложений в AGW с этой настройкой.
Чтобы обойти ограничение слушателя с минимальными изменениями, я хотел бы использовать многосайтовую маршрутизацию на основе пути с ILB ASE в качестве внутреннего пула. Я хотел бы что-то похожее на следующее:
Я провел некоторое время, изучая документы, а также другие вопросы Stackru. Я также ознакомился с документами службы поддержки многосайтовых приложений https://docs.microsoft.com/en-us/azure/application-gateway/create-web-app, в том числе поигрался с переключателями -PickHostNameFromBackend. Я провел несколько экспериментов без успеха до сих пор.
Я считаю, что то, что я хочу сделать, в настоящее время не поддерживается AGW. Я думаю, что понимаю почему. Имя хоста, переданное из AGW в ASE ILB (api.example.com), отсутствует в качестве пользовательского домена ни в одном из экземпляров службы приложений в ASE, поэтому запрос не будет выполнен. Поправьте меня, если я ошибаюсь, пожалуйста.
Возможна ли моя желаемая настройка (рисунок 2)?
Если это невозможно, какими могут быть альтернативные решения с одним AGW, как у меня сегодня?
1 ответ
Во-первых, вы можете открыть заявку в службу поддержки, чтобы увеличить количество пулов слушателей / бэкэндов с 20 до 40. Это должно немедленно предложить вам некоторое пространство для расширения.
Второй сценарий также должен быть возможен. Вы должны использовать api-aaa.example.com и api-bbb.example.com в качестве членов бэкэнд-пула. И используйте переключатель PickHostNameFromBackendAddress для HTTPSettings, а также создайте пользовательский зонд с установленным флагом PickHostNameFromBackendHttpSettings и свяжите зонд с HTTPSetting. Вы должны использовать этот параметр в каждом правиле, основанном на путях, когда будете связывать пути с внутренними пулами. Убедитесь, что ваш внутренний DNS в VNet может разрешить api-aaa.example.com и api-bbb.example.com в IP-адрес ILB 222.222.222.222.