Share 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 de tráfego da Web ao criar um gateway de aplicativo. Neste tutorial, você define um pool de back-end usando um conjunto de dimensionamento de máquinas virtuais. Em seguida, você configura ouvintes e regras com base nos domínios de sua propriedade para garantir que o tráfego da Web chegue ao pool apropriado. Este tutorial pressupõe que você possui vários domínios e usa exemplos de www.contoso.com e www.contoso.org.

Neste artigo, vai aprender a:

  • Configurar a rede
  • Criar um gateway de aplicação
  • Adicionar ouvintes e regra de redirecionamento
  • Criar um conjunto de dimensionamento de máquina virtual com o pool de back-end
  • Criar um registo CNAME no seu domínio

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

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

Criar um grupo de recursos

Um grupo de recursos é um contentor lógico no qual os recursos do Azure são implementados e geridos. Crie um grupo de recursos com az group create.

O exemplo seguinte cria um grupo de recursos com o nome myResourceGroupAG na localização eastus.

az group create --name myResourceGroupAG --location eastus

Criar recursos de rede

Crie a rede virtual denominada myVNet e a sub-rede denominada myAGSubnet com az network vnet create. Em seguida, você pode adicionar a sub-rede chamada myBackendSubnet que é necessária para o pool de back-end de servidores usando az network vnet subnet create. Crie o endereço IP público denominado myAGPublicIPAddress com 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 aplicação

Pode utilizar az network application-gateway create para criar o gateway de aplicação denominado myAppGateway. Quando cria um gateway de aplicação com a CLI do Azure, especifica informações de configuração, tais como a capacidade, sku e definições de HTTP. O gateway de aplicação é atribuído a myAGSubnet e myAGPublicIPAddress que 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

A criação do gateway de aplicação pode demorar vários minutos. Depois de criado o gateway de aplicação, pode ver estas novas funcionalidades do mesmo:

  • appGatewayBackendPool - um gateway de aplicação tem de ter, pelo menos, um conjunto de endereços de back-end.
  • appGatewayBackendHttpSettings - especifica que a porta 80 e um protocolo HTTP são utilizados para a comunicação.
  • appGatewayHttpListener - o serviço de escuta predefinido associado a appGatewayBackendPool.
  • appGatewayFrontendIP - atribui myAGPublicIPAddress a appGatewayHttpListener.
  • rule1 - a regra de encaminhamento predefinida associada a appGatewayHttpListener.

Adicionar serviços de escuta e regras

É necessário um serviço de escuta para permitir ao gateway de aplicação encaminhar o tráfego adequadamente para o conjunto de back-end. Neste tutorial, vai criar dois serviços de escuta para os seus dois domínios. Neste exemplo, os ouvintes são criados para os domínios de www.contoso.com e www.contoso.org.

Adicione os serviços de escuta de back-end que são necessários para encaminhar o tráfego, com 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 o tráfego do www.consoto.org para o ouvinte para www.contoso.com no gateway de 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 encaminhamento

As regras são processadas na ordem em que são criadas, e o tráfego é direcionado usando a primeira regra que corresponde à URL enviada ao gateway de aplicativo. Por exemplo, se tiver uma regra com um serviço de escuta básico e uma regra com uma escuta de vários sites, ambas na mesma porta, a regra com o serviço de escuta de vários sites tem de estar listada antes da regra com o serviço de escuta básico, para que a regra de vários sites funcione conforme esperado.

Neste exemplo, você cria duas novas regras e exclui a regra padrão que foi criada. Pode adicionar a regra com 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ê cria um conjunto de dimensionamento de máquina virtual que oferece suporte ao pool de back-end que você criou. O conjunto de escala que você cria é chamado myvmss e contém duas instâncias de máquina virtual nas quais 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 registo CNAME no seu domínio

Depois de criar o gateway de aplicação com o respetivo endereço IP público, pode obter o endereço DNS e utilizá-lo para criar um registo CNAME no seu domínio. Pode utilizar az network public-ip show para obter o endereço DNS do gateway de aplicação. Copie o valor fqdn de DNSSettings e utilize-o como o valor do registo CNAME que criar. Não é recomendada a utilização de registos A, uma vez que o VIP pode ser alterado no reinício do gateway de aplicação.

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

Testar o gateway de aplicação

Introduza o nome de domínio na barra de endereço do seu browser. Tais como, http://www.contoso.com.

Test contoso site in application gateway

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

Próximos passos

Neste tutorial, ficou a saber como:

  • Configurar a rede
  • Criar um gateway de aplicação
  • Adicionar ouvintes e regra de redirecionamento
  • Criar um conjunto de dimensionamento de máquina virtual com o pool de back-end
  • Criar um registo CNAME no seu domínio