Compartilhar via


Criar um gateway de aplicativo com redirecionamento interno usando a CLI do Azure

Você pode usar a CLI do Azure para configurar o redirecionamento do tráfego da Web ao criar um gateway de aplicativo. Neste tutorial, você define pools de back-end usando um conjunto de dimensionamento de máquinas virtuais. Em seguida, configura ouvintes e regras com base em domínios que você tem, para garantir que o tráfego da Web chegue ao pool apropriado. Este tutorial presume que você tem vários domínios e usa os exemplos www.contoso.com e www.contoso.org.

Neste artigo, você aprenderá como:

  • Configurar a rede
  • Criar um Gateway de Aplicativo
  • Adicionar ouvintes e regras de redirecionamento
  • Criar um conjunto de dimensionamento de máquinas virtuais com o pool de back-end
  • Criar um registro CNAME no seu domínio

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Este tutorial requer a versão 2.0.4 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.

Criar um grupo de recursos

Um grupo de recursos é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Criar um grupo de recursos usando az group create.

O exemplo a seguir cria um grupo de recursos denominado myResourceGroupAG no local eastus.

az group create --name myResourceGroupAG --location eastus

Criar recursos da rede

Criar a rede virtual denominada myVNet e a sub-rede denominada myAGSubnet usando az network vnet create. É possível adicionar a sub-rede denominada myBackendSubnet, que é necessária para os pools de servidores de back-end usando az network vnet subnet create. Crie o endereço IP público denominado myAGPublicIPAddress usando 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

Criar um Gateway de Aplicativo

Você pode usar az network application-gateway create para criar o gateway do aplicativo denominado myAppGateway. Quando você cria um gateway de aplicativo usando a CLI do Azure, você pode especificar informações de configuração, como configurações de HTTP, sku e capacidade. O gateway de aplicativo é atribuído a myAGSubnet e myAGPublicIPAddress que você criou anteriormente.

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

O gateway de aplicativo pode demorar vários minutos para ser criado. Depois de criar o gateway de aplicativo, você pode ver esses novos recursos:

  • appGatewayBackendPool - Um gateway de aplicativo deve ter pelo menos um pool de endereços de back-end.
  • appGatewayBackendHttpSettings - Especifica que a porta 80 e um protocolo HTTP são usados para comunicação.
  • appGatewayHttpListener - O ouvinte padrão associado ao appGatewayBackendPool.
  • appGatewayFrontendIP - Atribui myAGPublicIPAddress ao appGatewayHttpListener.
  • rule1 - A regra padrão de roteamento que está associada ao appGatewayHttpListener.

Adicionar ouvintes e regras

Um ouvinte é necessário para habilitar o gateway de aplicativo para rotear o tráfego corretamente para o pool de back-end. Neste tutorial, você cria dois ouvintes para os seus dois domínios. Neste exemplo, são criados ouvintes para os domínios www.contoso.com e www.contoso.org.

Adicione ouvintes de back-end necessários para redirecionar o tráfego usando 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

Adicionar a configuração de redirecionamento

Adicione a configuração de redirecionamento que envia tráfego de www.contoso.org para o ouvinte de www.contoso.com no gateway do aplicativo usando 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

Adicionar regras de redirecionamento

As regras são processadas na ordem em que são criadas e o tráfego é redirecionado usando a primeira regra que corresponde à URL enviada para o gateway de aplicativo. Por exemplo, se você tiver uma regra usando um ouvinte básico e outra usando um ouvinte multissite, ambas na mesma porta, a regra com o ouvinte multissite deverá ser listada antes daquela com o ouvinte básico, para que a função multissite funcione conforme esperado.

Neste exemplo, você criará duas novas regras e excluirá a regra padrão que foi criada. Você pode adicionar a regra usando 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

Criar conjuntos de dimensionamento de máquinas virtuais

Neste exemplo, você criará um conjunto de dimensionamento de máquinas virtuais que oferece suporte ao pool de back-end criado. O conjunto de dimensionamento criado é chamado myvmss e contém duas instâncias de máquina virtual em que você instala o 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

Instalar o NGINX

Execute este comando na janela do shell:

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" }'

Criar um registro CNAME em seu domínio

Depois de criar o gateway de aplicativo com seu endereço IP público, é possível obter o endereço DNS e usá-lo para criar um registro CNAME em seu domínio. Use az network public-ip show para obter o endereço DNS do gateway de aplicativo. Copie o valor de fqdn em DNSSettings e use-o como o valor do registro CNAME a ser criado. O uso de registros A não é recomendado, pois o VIP pode mudar quando o gateway de aplicativo for reiniciado.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [dnsSettings.fqdn] \
  --output tsv

Testar o gateway de aplicativo

Digite seu nome de domínio na barra de endereços do navegador. Como http://www.contoso.com.

Testar o site contoso no gateway do aplicativo

Altere o endereço para seu outro domínio, por exemplo http://www.contoso.org e você deve observar que o tráfego foi redirecionado de volta ao ouvinte para www.contoso.com.

Próximas etapas

Neste tutorial, você aprendeu a:

  • Configurar a rede
  • Criar um Gateway de Aplicativo
  • Adicionar ouvintes e regras de redirecionamento
  • Criar um conjunto de dimensionamento de máquinas virtuais com o pool de back-end
  • Criar um registro CNAME no seu domínio