Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure CLI можно использовать для настройки перенаправления веб-трафика при создании шлюза приложений. В этом руководстве описано, как определить внутренний пул с помощью масштабируемого набора виртуальных машин. Затем вы настроите прослушиватели и правила на основе принадлежащих вам доменов, чтобы обеспечить передачу веб-трафика в соответствующий пул. В этом руководстве предполагается, что вы владеете несколькими доменами и используете примеры www.contoso.com и www.contoso.org.
В этой статье вы узнаете, как:
- Настройка сети
- Создание Шлюза приложений
- Добавление слушателей и правила перенаправления.
- Создать масштабируемый набор виртуальных машин с пулом серверов заднего плана.
- создание записи CNAME в домене.
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
Предпосылки
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, подумайте о запуске Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login . Чтобы завершить процесс аутентификации, следуйте шагам, отображаемым в вашем терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Когда вас попросят, установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Для работы с этим учебником требуется Azure CLI версии 2.0.4 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Создайте группу ресурсов
Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими. Создайте группу ресурсов, используя команду az group create.
В следующем примере создается группа ресурсов с именем myResourceGroupAG в расположении eastus.
az group create --name myResourceGroupAG --location eastus
Создание сетевых ресурсов
Создайте виртуальную сеть с именем myVNet и подсеть myAGSubnet с использованием команды az network vnet create. Затем можно добавить подсеть с именем myBackendSubnet, которая необходима для серверного пула, с помощью az network vnet subnet create. Создайте общедоступный IP-адрес с именем myAGPublicIPAddress, используя команду az network public-ip create.
az network vnet create \
--name myVNet \
--resource-group myResourceGroupAG \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name myAGSubnet \
--subnet-prefix 10.0.1.0/24
az network vnet subnet create \
--name myBackendSubnet \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--address-prefix 10.0.2.0/24
az network public-ip create \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress
Создание Шлюза приложений
Выполните команду az network application-gateway create, чтобы создать шлюз приложений myAppGateway. При создании шлюза приложений с помощью Azure CLI укажите такие сведения о конфигурации, как емкость, номер SKU и параметры HTTP. Шлюз приложений назначается подсети myAGSubnet и адресу myAGPublicIPAddress, созданным ранее.
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroupAG \
--vnet-name myVNet \
--subnet myAGsubnet \
--capacity 2 \
--sku Standard_Medium \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress
Создание шлюза приложений может занять несколько минут. Когда шлюз приложений будет создан, вы увидите такие новые функции шлюза:
- appGatewayBackendPool — шлюз приложений должен иметь по крайней мере один внутренний пул адресов.
- appGatewayBackendHttpSettings — указывает, что для обмена данными используются порт 80 и протокол HTTP.
- appGatewayHttpListener — прослушиватель по умолчанию, связанный с appGatewayBackendPool.
- appGatewayFrontendIP — назначает адрес myAGPublicIPAddress для прослушивателя appGatewayHttpListener.
- rule1 — правило маршрутизации по умолчанию, связанное с прослушивателем appGatewayHttpListener.
Добавьте прослушиватели и правила
Для того чтобы шлюз приложений правильно маршрутизировал трафик к набору серверов внутренней сети, требуется прослушиватель. В этом руководстве вы создадите два прослушивателя для двух доменов. В этом примере создаются прослушиватели для доменов www.contoso.com и www.contoso.org.
Добавьте серверные прослушиватели, необходимые для маршрутизации трафика с помощью az network application-gateway http-listener create.
az network application-gateway http-listener create \
--name contosoComListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.contoso.com
az network application-gateway http-listener create \
--name contosoOrgListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.contoso.org
Добавление конфигурации перенаправления
Добавьте конфигурацию перенаправления, которая отправляет трафик из www.contoso.org к прослушивателю www.contoso.com в шлюзе приложений с помощью az network application-gateway redirect-config create.
az network application-gateway redirect-config create \
--name orgToCom \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--type Permanent \
--target-listener contosoListener \
--include-path true \
--include-query-string true
Добавление правил маршрутизации
Правила обрабатываются в том порядке, в котором они создаются, и трафик направляется с помощью первого правила, соответствующего URL-адресу, отправляемому шлюзу приложений. Например, если для одного порта имеется правило с базовым прослушивателем и правило с многосайтовым прослушивателем, для обеспечения правильной работы правило с многосайтовым прослушивателем должно быть указано перед правилом с базовым прослушивателем.
В этом примере вы создадите два новых правила и удалите созданное по умолчанию правило. Вы можете добавить правило с помощью команды az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoComRule \
--resource-group myResourceGroupAG \
--http-listener contosoComListener \
--rule-type Basic \
--address-pool appGatewayBackendPool
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoOrgRule \
--resource-group myResourceGroupAG \
--http-listener contosoOrgListener \
--rule-type Basic \
--redirect-config orgToCom
az network application-gateway rule delete \
--gateway-name myAppGateway \
--name rule1 \
--resource-group myResourceGroupAG
Создание наборов для масштабирования виртуальных машин
В этом примере вы создаете масштабируемый набор виртуальных машин, который поддерживает созданный вами внутренний пул. Создаваемый масштабируемый набор называется myvmss и содержит два экземпляра виртуальных машин, на которых устанавливается NGINX.
az vmss create \
--name myvmss \
--resource-group myResourceGroupAG \
--image Ubuntu2204 \
--admin-username azureuser \
--admin-password Azure123456! \
--instance-count 2 \
--vnet-name myVNet \
--subnet myBackendSubnet \
--vm-sku Standard_DS2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name appGatewayBackendPool
Установка nginx
Выполните следующую команду в окне оболочки:
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vmss-name myvmss \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"],
"commandToExecute": "./install_nginx.sh" }'
Создание записи CNAME в домене
После создания шлюза приложений с общедоступным IP-адресом можно получить DNS-адрес и использовать его для создания записи CNAME в своем домене. С помощью команды az network public-ip show можно получить DNS-адрес шлюза приложений. Скопируйте значение fqdn для DNSSettings и используйте его в качестве значения создаваемой записи CNAME. Использовать A-записи не рекомендуется, так как VIP-адрес может измениться после перезапуска шлюза приложений.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [dnsSettings.fqdn] \
--output tsv
Тестирование шлюза приложений
В адресной строке браузера введите имя домена. Например http://www.contoso.com.
Измените адрес на другой домен, например http://www.contoso.org. Вы должны увидеть, что трафик перенаправляется в прослушиватель для www.contoso.com.
Дальнейшие шаги
Из этого руководства вы узнали, как:
- Настройка сети
- Создание Шлюза приложений
- Добавление слушателей и правила перенаправления.
- Создать масштабируемый набор виртуальных машин с пулом серверов заднего плана.
- создание записи CNAME в домене.