Como configurar o Azure Front Door para um site estático: passo a passo
Este tutorial mostra como configurar o Azure Front Door para servir um site estático hospedado em Azure Blob Storage, adicionando CDN, HTTPS gerido e encaminhamento global. É útil para reduzir latência, melhorar disponibilidade e ter TLS com o mínimo esforço.
Pré-requisitos
- Conta Azure com permissões para criar recursos (Subscription).
- Azure CLI instalada (az) ou acesso ao Azure Portal.
- Um site estático simples (ficheiros HTML/CSS/JS) pronto para upload.
- Domínio personalizado opcional (ex.: example.com) com acesso para criar um registo CNAME.
Passo 1: Criar um Storage Account com Static Website
Criar um Storage Account com suporte a static website. O site ficará num container $web e será o backend do Front Door.
az storage account create --name mystaticstore --resource-group MyRG --location northeurope --sku Standard_LRS --kind StorageV2
# activar static website
az storage blob service-properties update --account-name mystaticstore --static-website --index-document index.html --404-document 404.html
# carregar ficheiros (exemplo) - assume que tem AZURE_STORAGE_KEY ou use --auth-mode login
az storage blob upload-batch --account-name mystaticstore -s ./site-files -d '$web'
Passo 2: Criar um Front Door (Premium ou Standard)
O Azure Front Door fornece CDN, encaminhamento e WAF (opcional). Aqui usamos um perfil Front Door Standard/Premium. No exemplo usamos a CLI para criar um Front Door básico que aponta para o endpoint do static website.
# criar resource group se necessário
az group create --name MyRG --location northeurope
# criar Front Door profile (Standard_Plus ou Premium_AzureFrontDoor)
az network front-door create --resource-group MyRG --name MyFrontDoor --frontend-endpoints MyFrontEnd --backend-pool-name MyBackendPool --backend-address "mystaticstore.z13.web.core.windows.net" --sku Standard_AzureFrontDoor
Passo 3: Configurar frontend endpoint e TLS (HTTPS)
O Front Door cria um endpoint *.azurefd.net por defeito. Para HTTPS automático sem gerir certificados, active o TLS gerido. Se usar um domínio personalizado, adicione um CNAME e habilite o HTTPS gerido (a Azure providencia o certificado).
# exemplo: adicionar frontend custom domain (substitua pelo seu domínio)
az network front-door frontend-endpoint create --resource-group MyRG --front-door-name MyFrontDoor --name www --host-name www.example.com
# após validar o CNAME no seu DNS, habilitar HTTPS (managed)
az network front-door frontend-endpoint update --resource-group MyRG --front-door-name MyFrontDoor --name www --session-affinity-enabled false --certificate-source FrontDoor
Passo 4: Regras de encaminhamento e compressão
Defina regras para que pedidos ao Front Door sejam encaminhados para o backend $web. Pode também activar compressão e definir o TTL de cache para melhorar o desempenho.
# criar route simples que encaminha todos os caminhos para o backend
az network front-door routing-rule create --resource-group MyRG --front-door-name MyFrontDoor --name DefaultRoute --frontend-endpoints MyFrontEnd --accepted-protocols Http Https --patterns-to-match '/*' --route-type Forward --backend-pool MyBackendPool
# ajustar caching e compressão via Azure Portal (UI) se necessitar de regras mais granulares
Passo 5: Configurar domínio personalizado (opcional) e CNAME
Se usar um domínio personalizado, crie um registo CNAME que aponte para o endpoint do Front Door (ex.: myfrontdoor.azurefd.net). Depois valide no Front Door e aguarde a emissão do certificado gerido.
# exemplo conceptual: no DNS do domínio criar
# CNAME www.example.com -> myfrontdoor.azurefd.net
# no Azure, adicionar e validar frontend custom (já mostrado no passo 3)
Verificar o resultado
Abra o endpoint do Front Door (ex.: https://myfrontdoor.azurefd.net ou https://www.example.com). Deve ver o conteúdo do seu index.html servido com HTTPS. Verifique cabeçalhos de resposta para confirmar cache e CDN:
curl -I https://myfrontdoor.azurefd.net
# Procure cabeçalhos como: x-cache, x-ms-request-id e um status 200
Conclusão
Com o Azure Front Door ligado a um static website em Blob Storage obteve CDN global, TLS gerido e encaminhamento com pouco esforço. Próximos passos: activar o WAF no Front Door Premium, ajustar o TTL de cache por rota e configurar regras de compressão ou redireccionamento HTTP->HTTPS. Dica: teste alterações de cache com query strings e cache-busting para evitar servir conteúdo desactualizado.