Создание шлюза приложений с завершением TLS-запросов с помощью Azure CLI
Вы можете создать шлюз приложений с сертификатом для завершения сеанса TLS с помощью Azure CLI. Для серверных серверов можно использовать масштабируемый набор виртуальных машин. В этом примере масштабируемый набор содержит два экземпляра виртуальных машин, которые добавляются в серверный пул шлюза приложений по умолчанию.
Вы узнаете, как выполнять следующие задачи:
- Создание самозаверяющего сертификата
- настройка сети;
- создание шлюза приложений с сертификатом;
- Создание масштабируемого набора виртуальных машин с серверным пулом по умолчанию
При необходимости эти инструкции можно выполнить с помощью Azure PowerShell.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Необходимые компоненты
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Для работы с этим учебником требуется Azure CLI версии 2.0.4 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Создание самозаверяющего сертификата
Для использования в рабочей среде следует импортировать действительный сертификат, подписанный доверенным поставщиком. В этой статье для создания самозаверяющего сертификата и PFX-файла используется команда openssl.
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out appgwcert.crt
Введите значения, которые соответствуют вашему сертификату. Вы можете принять значения по умолчанию.
openssl pkcs12 -export -out appgwcert.pfx -inkey privateKey.key -in appgwcert.crt
Введите Пароль для сертификата. В этом примере используется Azure123456!
Создание или изменение группы ресурсов
Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов 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 \
--allocation-method Static \
--sku Standard \
--location eastus
Создание шлюза приложений
Шлюз приложений можно создать с помощью команды az network application-gateway create. При создании шлюза приложений с помощью 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_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 443 \
--http-settings-port 80 \
--http-settings-protocol Http \
--priority "1" \
--public-ip-address myAGPublicIPAddress \
--cert-file appgwcert.pfx \
--cert-password "Azure123456!"
Создание шлюза приложений может занять несколько минут. Когда шлюз приложений будет создан, вы увидите такие новые функции шлюза:
- appGatewayBackendPool — шлюз приложений должен иметь по крайней мере один внутренний пул адресов.
- appGatewayBackendHttpSettings — указывает, что для обмена данными используются порт 80 и протокол HTTP.
- appGatewayHttpListener — прослушиватель по умолчанию, связанный с appGatewayBackendPool.
- appGatewayFrontendIP — назначает адрес myAGPublicIPAddress для прослушивателя appGatewayHttpListener.
- rule1 — правило маршрутизации по умолчанию, связанное с прослушивателем appGatewayHttpListener.
Создание масштабируемого набора виртуальных машин
В этом примере создается масштабируемый набор виртуальных машин, который предоставляет серверы для внутреннего пула по умолчанию в шлюзе приложений. Виртуальные машины в масштабируемом наборе связаны с подсетью myBackendSubnet и пулом appGatewayBackendPool. Чтобы создать масштабируемый набор, выполните команду az vmss create.
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" }'
Тестирование шлюза приложений
Чтобы получить общедоступный IP-адрес шлюза приложений, используйте команду az network public-ip show.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Скопируйте общедоступный IP-адрес и вставьте его в адресную строку браузера. В этом примере используется URL-адрес https://52.170.203.149.
Чтобы принять предупреждение системы безопасности, если используется самозаверяющий сертификат безопасности, выберите Сведения, а затем нажмите Перейти на веб-страницу. На экране отобразится защищенный веб-сайт NGINX, как в показано следующем примере:
Очистка ресурсов
При необходимости вы можете удалить группу ресурсов, шлюз приложений и все связанные ресурсы.
az group delete --name myResourceGroupAG --location eastus
Следующие шаги
Создание шлюза приложений для размещения нескольких веб-сайтов