Маршрутизация на основе путей шлюза приложений с несколькими сайтами не отправляет трафик в Apache на виртуальных машинах

В шлюзе приложений Azure (стандартный уровень) у меня есть несколько многосайтовых прослушивателей:

listener-one-http (80 с именем хоста www.staging.example.com). Основное правило отправляет трафик следующему прослушивателю:

listener-two-https (443 с именем хоста www.staging.example.com) Это правило на основе пути отправляет трафик на VM-01 или VM-02, если путь содержит mystore. Apache настроен на обеих этих виртуальных машинах для разных сайтов.

Правила на основе пути:

Name: www.staging.example.com-https-rule
Listener: listener-two-https
Backend pool: VM-01-Pool
Default HTTP settings: HTTPS-Backend

Name, Paths, Backend pool, HTTP setting
store, /mystore/*, VM-02-Pool, HTTPS-Backend
all, /*, VM-01-Pool, HTTPS-Backend

Применяется основное правило (с http на https), но набор правил на основе пути игнорируется. В моем браузере я ввожу http://www.staging.example.com, и в результате получается https://www.staging.example.com (хорошо), но затем я получаю следующее сообщение (плохо ):

You don't have permission to access / on this server.

Есть ли способ отследить, что происходит между шлюзом приложений и Apache, не проверяя виртуальные машины?


person Confounder    schedule 11.02.2020    source источник
comment
Похоже, что правила верны, но трафик не отправляется в пул серверной части из-за неисправных экземпляров, которые можно найти в разделе «Шлюз приложений» ›Работоспособность серверной части в Azure. Ошибка: не удается подключиться к серверу. Проверьте, не блокирует ли какой-либо NSG / UDR / брандмауэр доступ к серверу. Убедитесь, что приложение работает на правильном порту. Как мне изменить это на зондирование порта 80, а не 443 в Azure?   -  person Confounder    schedule 11.02.2020
comment
Вы пытаетесь полностью прекратить использование SSL? Какая у вас конфигурация настроек HTTP? Вы сейчас используете конфигурацию датчика по умолчанию? Вы можете попытаться создать настраиваемый зонд, в который вам нужно добавить доверенный корневой сертификат, если серверная часть не является хорошо известным центром сертификации.   -  person msrini-MSIT    schedule 12.02.2020
comment
Да, завершение SSL работает должным образом, но трафик не отправляется на внутренние виртуальные машины из-за сбоя проверки работоспособности. Где определяется порт (параметр HTTP) в разделе «Работоспособность серверной части»?   -  person Confounder    schedule 12.02.2020
comment
Зонды связаны с настройками HTTP.   -  person msrini-MSIT    schedule 12.02.2020
comment
Думаю, я решил проблему. Кажется, что правило в шлюзе приложений отменяет добавленный мной прослушиватель / правила. Либо это, либо шлюз приложений не распространяет изменения. Я решил проверить это, удалив прослушиватель / правила, но трафик все еще попадал на виртуальную машину, хотя маршрутизации там не было. Я проверил это в журналах доступа для шлюза приложений в хранилище.   -  person Confounder    schedule 12.02.2020


Ответы (1)


Если вы добавите правило / *, оно сломается.

Учебное пособие: создание шлюза приложений с указанием пути правила маршрутизации с использованием портала Azure

Примечание

Вам не нужно добавлять настраиваемое правило пути / * для обработки случаев по умолчанию. Это автоматически обрабатывается серверным пулом по умолчанию.

person Søren Huus Rasmussen    schedule 19.06.2020