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 que possui 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 tráfego do www.contoso.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 criado. 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.
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