Поделиться через


Руководство. Добавление и настройка правил доставки для Azure Front Door уровня "Стандартный" или "Премиум" с помощью Azure CLI

Область применения: ✔️ Front Door Standard ✔️ Front Door Premium

Azure Front Door в стандартной или премиальной версии — это быстрая и безопасная современная облачная сеть доставки контента. Azure Front Door использует глобальную сеть Microsoft edge и интегрируется с интеллектуальной защитой от угроз. Azure Front Door Standard фокусируется на доставке содержимого. Azure Front Door Premium добавляет широкие возможности безопасности и настройки. В этом руководстве основное внимание уделяется созданию профиля Azure Front Door, а затем добавлению правил доставки для более детального управления поведением веб-приложения.

В этом руководстве вы узнаете, как:

  • Создайте профиль Azure Front Door.
  • Создайте два экземпляра веб-приложения.
  • Создайте новую политику безопасности.
  • Проверьте подключение к веб-приложениям.
  • Создайте набор правил.
  • Создайте правило и добавьте его в набор правил.
  • Добавьте действия или условия в правила.

Если у вас нет подписки на Azure, создайте бесплатную учетную запись Azure перед началом.

Предпосылки

Создайте Azure Front Door.

Создайте группу ресурсов

Для этого быстрого начала потребуется две группы ресурсов. Один в центральной части США и второй в восточной части США.

Запустите az group create , чтобы создать группы ресурсов.

az group create \
    --name myRGFDCentral \
    --location centralus

az group create \
    --name myRGFDEast \
    --location eastus

Создание профиля Azure Front Door

Запустите az afd profile create , чтобы создать профиль Azure Front Door.

az afd profile create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --sku Premium_AzureFrontDoor \
    --subscription mysubscription

Создание двух экземпляров веб-приложения

Для работы с этим руководством вам потребуется два экземпляра веб-приложения, выполняющегося в разных регионах Azure. Оба экземпляра веб-приложения работают в активном/активном режиме, так что любой из них может обслуживать трафик.

Если у вас нет веб-приложения, создайте два его экземпляра, используя показанный ниже скрипт.

Создание планов службы приложений

Прежде чем создавать веб-приложения, необходимо иметь два плана службы приложений, один в центральной части США и второй в Восточной части США.

Запустите az appservice plan create , чтобы создать планы службы приложений.

az appservice plan create \
    --name myAppServicePlanCentralUS \
    --resource-group myRGFDCentral

az appservice plan create \
    --name myAppServicePlanEastUS \
    --resource-group myRGFDEast

Создание веб-приложений

Запустите az webapp create, чтобы создать веб-приложение в каждом из планов службы приложений на предыдущем шаге. Имена веб-приложений должны быть глобально уникальными.

Запустите az webapp list-runtimes , чтобы просмотреть список встроенных стеков для веб-приложений.

az webapp create \
    --name WebAppContoso-001 \
    --resource-group myRGFDCentral \
    --plan myAppServicePlanCentralUS \
    --runtime "DOTNETCORE|2.1"

az webapp create \
    --name WebAppContoso-002 \
    --resource-group myRGFDEast \
    --plan myAppServicePlanEastUS \
    --runtime "DOTNETCORE|2.1"

Запишите имя узла по умолчанию для каждого веб-приложения, чтобы можно было определить внутренние адреса при развертывании Front Door на следующем шаге.

Добавить конечную точку

Запустите az afd endpoint create , чтобы создать конечную точку в профиле. Вы можете создать несколько конечных точек в своем профиле после завершения процесса создания.

az afd endpoint create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --origin-response-timeout-seconds 60 \
    --enabled-state Enabled

Создание группы источников

Запустите az afd origin-group create , чтобы создать группу источников, содержащую две веб-приложения.

az afd origin-group create \
    --resource-group myRGFDCentral \
    --origin-group-name og1 \
    --profile-name contosoafd \
    --probe-request-type GET \
    --probe-protocol Http \
    --probe-interval-in-seconds 120 \
    --probe-path /test1/azure.txt \
    --sample-size 4 \
    --successful-samples-required 3 \
    --additional-latency-in-milliseconds 50

Добавление источников в группу

Запустите az afd origin create , чтобы добавить источник в группу источников.

az afd origin create \
    --resource-group myRGFDCentral \
    --host-name webappcontoso-1.azurewebsites.net
    --profile-name contosoafd \
    --origin-group-name og1 \
    --origin-name contoso1 \
    --origin-host-header webappcontoso-1.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

Повторите этот шаг и добавьте второй источник.

az afd origin create \
    --resource-group myRGFDCentral \
    --host-name webappcontoso-2.azurewebsites.net
    --profile-name contosoafd \
    --origin-group-name og1 \
    --origin-name contoso2 \
    --origin-host-header webappcontoso-2.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

Добавление маршрута

Выполните команду az afd route create, чтобы привязать конечную точку фронтального интерфейса к группе источника. Этот маршрут перенаправит запросы из конечной точки в og1.

az afd route create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --route-name route1 \
    --https-redirect Enabled \
    --origin-group og1 \
    --supported-protocols Https \
    --link-to-default-domain Enabled \
    --forwarding-protocol MatchRequest

Создание новой политики безопасности

Создание политики WAF

Запустите az network front-door waf-policy create , чтобы создать политику WAF для одной из групп ресурсов.

Создайте новую политику WAF для Front Door (входной двери). В этом примере создается политика, которая включена и находится в режиме предотвращения.

az network front-door waf-policy create
    --name contosoWAF /
    --resource-group myRGFDCentral /
    --sku Premium_AzureFrontDoor
    --disabled false /
    --mode Prevention

Замечание

Если вы выберете Detection режим, WAF не блокирует никакие запросы.

Создание политики безопасности

Запустите az afd security-policy create , чтобы применить политику WAF к домену конечной точки по умолчанию.

az afd security-policy create \
    --resource-group myRGFDCentral \
    --profile-name contosoafd \
    --security-policy-name contososecurity \
    --domains /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contoso-frontend.z01.azurefd.net \
    --waf-policy /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF

Проверить Azure Front Door

При создании профиля Azure Front Door стандартного или премиум уровня развертывание конфигурации в масштабах всего мира занимает несколько минут. После завершения вы можете получить доступ к созданному узлу фронтенда. Для этого откройте в браузере адрес contoso-frontend.z01.azurefd.net. Запрос автоматически направляется на ближайший сервер с указанных серверов в группе источников.

Чтобы протестировать автоматическое глобальное переключение на резерв, выполните следующие действия.

  1. Откройте браузер, как описано выше, и перейдите по адресу внешнего интерфейса: contoso-frontend.azurefd.net

  2. На портале Azure найдите и выберите Службы приложений. Прокрутите вниз, чтобы найти одно из веб-приложений WebAppContoso-1 в этом примере.

  3. Выберите веб-приложение, а затем нажмите кнопку "Остановить" и "Да ", чтобы проверить.

  4. Обновите браузер. Вы увидите ту же страницу сведений.

    Подсказка

    Существует некоторая задержка для этих действий. Возможно, потребуется снова обновить страницу.

  5. Найдите другое веб-приложение и остановите его.

  6. Обновите браузер. На этот раз вы увидите сообщение об ошибке.

    Остановлены оба экземпляра веб-приложения

Создание набора правил

Создайте набор правил для настройки обработки HTTP-запросов на границе. Правила доставки, добавленные в набор правил, обеспечивают более контроль над поведением веб-приложения. Запустите az afd rule-set create , чтобы создать набор правил в профиле Azure Front Door.

az afd rule-set create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules

Создайте правило доставки и добавьте его в набор правил.

Создайте новое правило доставки в наборе правил. Запустите az afd rule create , чтобы создать правило доставки в наборе правил. В этом примере мы создадим правило для перенаправления с HTTP на HTTPS.

az afd rule create \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --order 1 \
    --match-variable RequestScheme \
    --operator Equal \
    --match-values HTTP \
    --rule-name "redirect" \
    --action-name "UrlRedirect" \
    --redirect-protocol Https \
    --redirect-type Moved

Добавление действия или условия в правило доставки

Возможно, вам потребуется дополнительно настроить новое правило доставки. После создания можно добавить действия или условия. Используйте az afd rule action add или az afd rule condition add, чтобы обновить ваше правило.

Добавление действия

az afd rule action add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --action-name "CacheExpiration" \
    --cache-behavior BypassCache

Добавить условие

az afd rule condition add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --match-variable RemoteAddress \
    --operator GeoMatch \
    --match-values "TH"

Очистите ресурсы

Если вам не нужны ресурсы для Front Door, удалите обе группы ресурсов. Удаление групп ресурсов также удаляет Front Door и все связанные с ней ресурсы.

Выполните az group delete:

az group delete \
    --name myRGFDCentral

az group delete \
    --name myRGFDEast