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.
Você pode usar a CLI do Azure para configurar a hospedagem de vários sites ao criar um gateway de aplicativo. Neste artigo, definem-se pools de endereços de back-end usando conjuntos de escalonamento de máquinas virtuais. Em seguida, configure os escutadores e as regras com base nos domínios que possui para assegurar que o tráfego web chegue aos servidores adequados nas pools. Este artigo pressupõe que você possui vários domínios e usa exemplos de www.contoso.com e www.fabrikam.com.
Neste artigo, você aprenderá a:
- Configurar a rede
- Criar um gateway de aplicação
- Criar ouvintes de back-end
- Criar regras de encaminhamento
- Criar conjuntos de escala de máquina virtual com os pools de back-end
- Criar um registo CNAME no seu domínio
Se preferir, você pode concluir este procedimento usando o Azure PowerShell.
Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Utilize 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 o CLI do Azure. Se estiver a usar Windows ou macOS, considere executar o Azure CLI num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão do Azure CLI na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute 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 contêiner lógico no qual os recursos do Azure são implantados e gerenciados. 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 e a sub-rede chamada myAGSubnet usando az network vnet create. Em seguida, pode adicionar a sub-rede necessária aos servidores de backend 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 o gateway de aplicação
Você pode usar az network application-gateway create para criar o gateway de aplicativo. 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 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 10
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 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 os pools de backend
Adicione os pools de back-end necessários para acomodar os servidores de back-end usando az network application-gateway address-pool create
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name contosoPool
az network application-gateway address-pool create \
--gateway-name myAppGateway \
--resource-group myResourceGroupAG \
--name fabrikamPool
Adicionar ouvintes
Adicione ouvintes que necessite para rotear o tráfego usando az network application-gateway http-listener create.
Observação
Com o Application Gateway ou WAF v2 SKU, você também pode configurar até 5 nomes de host por ouvinte e pode usar caracteres curinga no nome do host. Consulte Nomes de host coringa no escutador para obter mais informações.
Para usar vários nomes de host e caracteres curinga em um ouvinte usando a CLI do Azure, você deve usar --host-names
em vez de --host-name
. Com nomes de host, você pode mencionar até cinco nomes de host como valores separados por espaço. Por exemplo, --host-names "*.contoso.com *.fabrikam.com"
az network application-gateway http-listener create \
--name contosoListener \
--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 fabrikamListener \
--frontend-ip appGatewayFrontendIP \
--frontend-port appGatewayFrontendPort \
--resource-group myResourceGroupAG \
--gateway-name myAppGateway \
--host-name www.fabrikam.com
Adicionar regras de encaminhamento
As regras são processadas na ordem em que são listadas se o campo de prioridade da regra não for usado. O tráfego é direcionado usando a primeira regra que corresponde independentemente da especificidade. Por exemplo, se você tiver uma regra usando um ouvinte básico e uma regra usando um ouvinte multissite ambos na mesma porta, a regra com o ouvinte multissite deverá ser listada antes da regra com o ouvinte básico para que a regra multissite funcione conforme o esperado.
Neste exemplo, você cria duas novas regras e exclui a regra padrão criada quando implantou o gateway de aplicativo. Você pode adicionar a regra usando az network application-gateway rule create.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--address-pool contosoPool \
--priority 200
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--address-pool fabrikamPool \
--priority 100
az network application-gateway rule delete \
--gateway-name myAppGateway \
--name rule1 \
--resource-group myResourceGroupAG
Adicionar prioridade às regras de roteamento
Para garantir que regras mais específicas sejam processadas primeiro, use o campo de prioridade da regra para garantir que elas tenham prioridade mais alta. O campo de prioridade da regra deve ser definido para todas as regras de roteamento de solicitação existentes e qualquer nova regra criada posteriormente também deve ter um valor de prioridade de regra.
az network application-gateway rule create \
--gateway-name myAppGateway \
--name contosoRule \
--resource-group myResourceGroupAG \
--http-listener contosoListener \
--rule-type Basic \
--priority 200 \
--address-pool contosoPool
az network application-gateway rule create \
--gateway-name myAppGateway \
--name fabrikamRule \
--resource-group myResourceGroupAG \
--http-listener fabrikamListener \
--rule-type Basic \
--priority 100 \
--address-pool fabrikamPool
Criar conjuntos de dimensionamento de máquinas virtuais
Neste exemplo, você cria três Conjuntos de Escala de Máquina Virtual que suportam os três pools de back-end no gateway de aplicativo. 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 IIS.
for i in `seq 1 2`; do
if [ $i -eq 1 ]
then
poolName="contosoPool"
fi
if [ $i -eq 2 ]
then
poolName="fabrikamPool"
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_D1_v2 \
--upgrade-policy-mode Automatic \
--app-gateway myAppGateway \
--backend-pool-name $poolName
done
Instalar o NGINX
for i in `seq 1 2`; 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
Criar um 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. Você pode usar az network public-ip show para obter o endereço DNS do gateway de aplicativo. Copie o valor fqdn de DNSSettings e utilize-o como o valor do registo CNAME que criar.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [dnsSettings.fqdn] \
--output tsv
O uso de registos A não é recomendado porque o VIP pode mudar quando o gateway de aplicação for reiniciado.
Testar o portal de aplicações
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 o outro domínio, e deverá ver algo semelhante ao seguinte exemplo:
Limpeza de 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
Próximos passos
Criar uma gateway de aplicativo com regras de encaminhamento por percurso de URL