Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Pode utilizar a CLI do Azure para configurar regras de encaminhamento com base no caminho do URL quando cria um gateway de aplicação. Neste tutorial, irá criar grupos de back-end através de conjuntos de dimensionamento de máquinas virtuais. Em seguida, vai criar regras de encaminhamento de URL que asseguram que o tráfego da Web é redirecionado para o conjunto de back-end adequado.
Neste tutorial, irá aprender a:
- Configurar a rede
- Criar um gateway de aplicação
- Adicionar ouvintes e regras de roteamento
- Criar conjuntos de dimensionamento de máquinas virtuais para grupos de back-end.
O exemplo seguinte mostra o tráfego do site proveniente das portas 8080 e 8081 e que está a ser direcionado para os mesmos conjuntos de back-end:
Se preferir, pode executar este tutorial com o Azure PowerShell.
Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with 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 Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a 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 utilizando az network vnet create. Em seguida, pode adicionar a sub-rede denominada myBackendSubnet que é necessária pelos servidores de back-end, 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 \
--allocation-method Static \
--sku Standard
Criar um gateway de aplicação
Utilize 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 aplicativo é atribuído a myAGSubnet e myPublicIPAddress 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_v2 \
--http-settings-cookie-based-affinity Disabled \
--frontend-port 80 \
--http-settings-port 80 \
--http-settings-protocol Http \
--public-ip-address myAGPublicIPAddress \
--priority 100
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:
- appGatewayBackendPool - Um gateway de aplicação deve ter, pelo menos, um pool 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 o myAGPublicIPAddress ao appGatewayHttpListener.
- rule1 - a regra de encaminhamento predefinida associada a appGatewayHttpListener.
Adicionar pools de back-end e portas
Pode adicionar conjuntos de endereços de back-end denominados imagesBackendPool e videoBackendPool ao gateway de aplicação, usando az network application-gateway address-pool create. Adicione as portas frontais para os pools usando az network application-gateway frontend-port create.
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name imagesBackendPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name videoBackendPool
az network application-gateway frontend-port create \
--port 8080 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name bport
az network application-gateway frontend-port create \
--port 8081 \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name rport
Adicionar ouvintes e regras
Adicionar ouvintes
Adicione os ouvintes de backend denominados backendListener e redirectedListener que são necessários para encaminhar o tráfego usando az network application-gateway http-listener create.
az network application-gateway http-listener create \
--name backendListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port bport \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
az network application-gateway http-listener create \
--name redirectedListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port rport \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
Adicionar o mapa de caminho de URL predefinido
Os mapas de caminhos de URL garantem que URLs específicas sejam roteadas para pools de back-end específicos. Pode criar mapas de caminho de URL denominados imagePathRule e videoPathRule usando az network application-gateway url-path-map create e az network application-gateway url-path-map rule create
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name urlpathmap \
--paths /images/* \
--resource-group myResourceGroupAG \
--address-pool imagesBackendPool \
--default-address-pool appGatewayBackendPool \
--default-http-settings appGatewayBackendHttpSettings \
--http-settings appGatewayBackendHttpSettings \
--rule-name imagePathRule
az network application-gateway url-path-map rule create \
--gateway-name myAppGateway \
--name videoPathRule \
--resource-group myResourceGroupAG \
--path-map-name urlpathmap \
--paths /video/* \
--address-pool videoBackendPool
Adicionar configuração de redirecionamento
Pode configurar o redirecionamento para o escutador usando az network application-gateway redirect-config create.
az network application-gateway redirect-config create \
--gateway-name myAppGateway \
--name redirectConfig \
--resource-group myResourceGroupAG \
--type Found \
--include-path true \
--include-query-string true \
--target-listener backendListener
Adicionar o mapa do caminho do URL de redirecionamento
az network application-gateway url-path-map create \
--gateway-name myAppGateway \
--name redirectpathmap \
--paths /images/* \
--resource-group myResourceGroupAG \
--redirect-config redirectConfig \
--rule-name redirectPathRule
Adicionar regras de encaminhamento
As regras de encaminhamento associam os mapas de caminho de URL aos escutadores que criou. Pode adicionar as regras denominadas defaultRule e redirectedRule com az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name defaultRule \
--resource-group myResourceGroupAG \
--http-listener backendListener \
--rule-type PathBasedRouting \
--url-path-map urlpathmap \
--address-pool appGatewayBackendPool \
--priority 100
az network application-gateway rule create \
--gateway-name myAppGateway \
--name redirectedRule \
--resource-group myResourceGroupAG \
--http-listener redirectedListener \
--rule-type PathBasedRouting \
--url-path-map redirectpathmap \
--address-pool appGatewayBackendPool \
--priority 100
Criar conjuntos de dimensionamento de máquinas virtuais
Neste exemplo, irá criar três grupos de dimensionamento de máquinas virtuais que suportam os três pools de back-end que criou. Os conjuntos de dimensionamento que criar são denominados myvmss1, myvmss2 e myvmss3. Cada conjunto de dimensionamento contém duas instâncias de máquina virtual onde vai instalar o NGINX.
Substitua <azure-user> e <password> por um nome de usuário e senha de sua escolha.
for i in `seq 1 3`; do
if [ $i -eq 1 ]
then
poolName="appGatewayBackendPool"
fi
if [ $i -eq 2 ]
then
poolName="imagesBackendPool"
fi
if [ $i -eq 3 ]
then
poolName="videoBackendPool"
fi
az vmss create \
--name myvmss$i \
--resource-group myResourceGroupAG \
--image Ubuntu2204 \
--admin-username <azure-user> \
--admin-password <password> \
--instance-count 2 \
--vnet-name myVNet \
--subnet myBackendSubnet \
--vm-sku Standard_DS2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
Instalar o NGINX
for i in `seq 1 3`; do
az vmss extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vmss-name myvmss$i \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
done
Testar o portal de aplicações
Para obter o endereço IP público do gateway de aplicação, utilize az network public-ip show. Copie o endereço IP público e cole-o na barra de endereço do browser. Como, por exemplo, http://40.121.222.19
, http://40.121.222.19:8080/images/test.htm
, http://40.121.222.19:8080/video/test.htm
ou http://40.121.222.19:8081/images/test.htm
.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Altere a URL para http://<endereço IP>:8080/images/test.html, substituindo o seu endereço IP por <endereço IP>, e verá algo como o seguinte exemplo:
Altere a URL para http://<endereço-ip>:8080/video/test.html, substituindo o seu endereço IP por <endereço-ip>, e deverá ver algo semelhante ao exemplo a seguir:
Agora, altere o URL para http://<ip-address>:8081/images/test.htm, substituindo o seu endereço IP por <ip-address>, e deverá ver o tráfego redirecionado de volta para o pool de back-end de imagens em http://<ip-address>:8080/images.
Limpar recursos
Quando já não forem necessários, remova o grupo de recursos, o gateway de aplicação e todos os recursos relacionados.
az group delete --name myResourceGroupAG