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.
Como administrador de TI gerenciando o tráfego da Web, você deseja ajudar seus clientes e usuários a obter as informações de que precisam o mais rápido possível. Uma forma de o fazer é otimizar a sua experiência ao encaminhar diferentes tipos de tráfego da Web para recursos de servidor diferente. Este artigo mostra como usar a CLI do Azure para configurar o roteamento do Gateway de Aplicativo para diferentes tipos de tráfego do seu aplicativo. O encaminhamento, em seguida, direciona o tráfego para agrupamentos de servidores diferentes com base no URL.
Neste artigo, vai aprender a:
- Crie um grupo de recursos para os recursos de rede de que você precisa
- Criar recursos de rede
- Criar um gateway de aplicação para o tráfego proveniente da sua aplicação
- Especificar agrupamentos de servidores e regras de encaminhamento para os diferentes tipos de tráfego
- Criar um conjunto de dimensionamento para cada pool, para que este possa dimensionar automaticamente.
- Execute um teste para verificar se os diferentes tipos de tráfego vão para o conjunto correto.
Se preferir, você pode concluir este procedimento usando o Azure PowerShell ou o portal do Azure.
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. Criar 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, adicione uma sub-rede chamada myBackendSubnet, necessária para os servidores back-end, usando az network vnet subnet create
. Crie o endereço IP público com o nome 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 o gateway de aplicação com um mapa de URL
Utilize az network application-gateway create
para criar um gateway de aplicação com o nome 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 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 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:
Funcionalidade | Descrição |
---|---|
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 usados para comunicação. |
appGatewayHttpListener | O serviço de escuta predefinido associado a appGatewayBackendPool |
endereço IP do Frontend do Portal da Aplicação | Atribui myAGPublicIPAddress para appGatewayHttpListener. |
regra 1 | A regra de encaminhamento predefinida associada a appGatewayHttpListener. |
Adicionar pools de back-end de imagens e vídeos e uma porta
Adicione conjuntos de back-end denominados imagesBackendPool e videoBackendPool ao gateway de aplicação, utilizando az network application-gateway address-pool create
. Adicionas a porta de frontend aos grupos com 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 port8080
Adicionar um ouvinte de backend
Adicione o ouvinte de back-end denominado backendListener que é necessário 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 port8080 \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway
Adicionar um mapa de caminho do URL
Os mapas de caminho de URL garantem que URLs específicas são encaminhadas para pools de backend específicos. Crie os mapa de caminho de URL com o nome imagePathRule e videoPathRule com 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 myPathMap \
--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 myPathMap \
--paths /video/* \
--address-pool videoBackendPool \
--http-settings appGatewayBackendHttpSettings
Adicionar uma regra de encaminhamento
A regra de encaminhamento associa os mapas do URL ao serviço de escuta que criou. Adicione uma regra com o nome rule2 com az network application-gateway rule create
.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name rule2 \
--resource-group myResourceGroupAG \
--http-listener backendListener \
--rule-type PathBasedRouting \
--url-path-map myPathMap \
--address-pool appGatewayBackendPool \
--priority 200
Criar conjuntos de dimensionamento de máquina virtual
Neste artigo, você cria três conjuntos de escala de máquina virtual que suportam os três pools de back-end criados. Vai criar conjuntos de dimensionamento denominados myvmss1, myvmss2 e myvmss3. Cada conjunto de dimensionamento contém duas instâncias de máquina virtual onde vai instalar o NGINX.
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 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 $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 a porta de entrada de aplicações
Para obter o endereço IP público do gateway de aplicação, utilize o comando 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
ou http://40.121.222.19:8080/video/test.htm
.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Altere o URL para http://<endereço IP>:8080/images/test.html, substituindo o seu endereço IP por <endereço IP>, e verá algo como no exemplo a seguir.
Altere o URL para http://< ip-address>:8080/video/test.html, substituindo seu endereço IP por <endereço> IP, e você verá algo como o exemplo a seguir.
Limpar recursos
Quando já não forem precisos, remova o grupo de recursos, o gateway de aplicação e todos os recursos relacionados.
az group delete --name myResourceGroupAG
Próximos passos
Criar um gateway de aplicação com redirecionamento baseado no caminho do URL