Static website hosting in Azure Storage (Alojamento de sites estáticos no Armazenamento do Microsoft Azure)
Você pode fornecer conteúdo estático (HTML, CSS, JavaScript e arquivos de imagem) diretamente de um contêiner de armazenamento chamado $web. Hospedar seu conteúdo no Armazenamento do Azure permite que você use arquiteturas sem servidor que incluem o Azure Functions e outros serviços de plataforma como serviço (PaaS). A hospedagem estática de sites do Armazenamento do Azure é uma ótima opção nos casos em que você não precisa de um servidor Web para renderizar conteúdo.
Os sites estáticos têm algumas limitações. Por exemplo, se quiser configurar cabeçalhos, terá de utilizar a Rede de Entrega de Conteúdo do Azure (CDN do Azure). Não há como configurar cabeçalhos como parte do próprio recurso estático do site. Além disso, AuthN e AuthZ não são suportados.
Se esses recursos forem importantes para o seu cenário, considere usar os Aplicativos Web Estáticos do Azure. É uma ótima alternativa para sites estáticos e também é apropriado nos casos em que você não precisa de um servidor web para renderizar conteúdo. Você pode configurar cabeçalhos e AuthN / AuthZ é totalmente suportado. Os Aplicativos Web Estáticos do Azure também fornecem um fluxo de trabalho de integração contínua e entrega contínua (CI/CD) totalmente gerenciado desde a origem do GitHub até a implantação global.
Se precisar de um servidor Web para renderizar conteúdo, você pode usar o Serviço de Aplicativo do Azure.
Configurando um site estático
A hospedagem estática de sites é um recurso que você precisa habilitar na conta de armazenamento.
Para habilitar a hospedagem estática de sites, selecione o nome do arquivo padrão e, opcionalmente, forneça um caminho para uma página 404 personalizada. Se um contêiner de armazenamento de blob chamado $web ainda não existir na conta, um será criado para você. Adicione os arquivos do seu site a esse contêiner.
Para obter orientação passo a passo, consulte Hospedar um site estático no Armazenamento do Azure.
Os arquivos no contêiner $web diferenciam maiúsculas de minúsculas, são servidos por meio de solicitações de acesso anônimas e estão disponíveis somente por meio de operações de leitura.
Upload de conteúdo
Você pode usar qualquer uma destas ferramentas para carregar conteúdo para o contêiner $web :
- CLI do Azure
- Módulo do Azure PowerShell
- AzCopy
- Explorador do Storage do Azure
- Azure Pipelines
- Extensão de código do Visual Studio e demonstração em vídeo do Channel 9
Visualização de conteúdo
Os usuários podem visualizar o conteúdo do site a partir de um navegador usando a URL pública do site. Você pode encontrar a URL usando o portal do Azure, a CLI do Azure ou o PowerShell. Consulte Localizar o URL do site.
O documento de índice especificado quando você habilita a hospedagem estática de sites aparece quando os usuários abrem o site e não especificam um arquivo específico (por exemplo: https://contosoblobaccount.z22.web.core.windows.net
).
Se o servidor retornar um erro 404 e você não tiver especificado um documento de erro quando ativou o site, uma página 404 padrão será retornada ao usuário.
Nota
O suporte do Compartilhamento de Recursos entre Origens (CORS) para o Armazenamento do Azure não é suportado com o site estático.
Objetivos secundários
Se você configurar redundância em uma região secundária, também poderá acessar o conteúdo do site usando um ponto de extremidade secundário. Os dados são replicados para regiões secundárias de forma assíncrona. Portanto, os arquivos disponíveis no ponto de extremidade secundário nem sempre estão sincronizados com os arquivos disponíveis no ponto de extremidade primário.
Impacto da definição do nível de acesso no contêiner da Web
Você pode modificar o nível de acesso anônimo do contêiner $web , mas fazer essa modificação não tem impacto no ponto de extremidade estático primário do site porque esses arquivos são servidos por meio de solicitações de acesso anônimo. Isso significa acesso público (somente leitura) a todos os arquivos.
Embora o ponto de extremidade do site estático primário não seja afetado, uma alteração no nível de acesso anônimo afeta o ponto de extremidade do serviço de blob primário.
Por exemplo, se você alterar o nível de acesso anônimo do contêiner $web de Private (sem acesso anônimo) para Blob (acesso de leitura anônimo somente para blobs), o nível de acesso anônimo ao ponto de extremidade https://contosoblobaccount.z22.web.core.windows.net/index.html
estático primário do site não será alterado.
No entanto, o acesso anônimo ao ponto de extremidade https://contosoblobaccount.blob.core.windows.net/$web/index.html
do serviço de blob primário é alterado, permitindo que os usuários abram esse arquivo usando qualquer um desses dois pontos de extremidade.
A desativação do acesso anônimo em uma conta de armazenamento usando a configuração de acesso anônimo da conta de armazenamento não afeta os sites estáticos hospedados nessa conta de armazenamento. Para obter mais informações, consulte Corrigir acesso de leitura anônimo a dados de blob (implantações do Azure Resource Manager).
Mapeando um domínio personalizado para uma URL de site estático
Você pode disponibilizar seu site estático através de um domínio personalizado.
É mais fácil habilitar o acesso HTTP para seu domínio personalizado, porque o Armazenamento do Azure oferece suporte nativo a ele. Para habilitar HTTPS, você terá que usar a CDN do Azure porque o Armazenamento do Azure ainda não oferece suporte nativo a HTTPS com domínios personalizados. consulte Mapear um domínio personalizado para um ponto de extremidade do Armazenamento de Blobs do Azure para obter orientação passo a passo.
Se a conta de armazenamento estiver configurada para exigir transferência segura por HTTPS, os usuários deverão usar o ponto de extremidade HTTPS.
Gorjeta
Considere hospedar seu domínio no Azure. Para obter mais informações, consulte Hospedar seu domínio no DNS do Azure.
Adicionando cabeçalhos HTTP
Não é possível configurar cabeçalhos como parte do recurso de site estático. No entanto, você pode usar a CDN do Azure para adicionar cabeçalhos e acrescentar (ou substituir) valores de cabeçalho. Consulte Referência do mecanismo de regras padrão para CDN do Azure.
Se você quiser usar cabeçalhos para controlar o cache, consulte Controlar o comportamento de cache da CDN do Azure com regras de cache.
Hospedagem de sites multi-região
Se você planeja hospedar um site em várias geografias, recomendamos que use uma Rede de Distribuição de Conteúdo para cache regional. Use o Azure Front Door se quiser veicular conteúdo diferente em cada região. Ele também fornece recursos de failover. O Azure Traffic Manager não é recomendado se você planeja usar um domínio personalizado. Podem surgir problemas devido à forma como o Armazenamento do Azure verifica os nomes de domínio personalizados.
Permissões
A permissão para habilitar o site estático é Microsoft.Storage/storageAccounts/blobServices/write ou chave compartilhada. As funções incorporadas que fornecem esse acesso incluem o Colaborador da Conta de Armazenamento.
Preços
Você pode ativar a hospedagem estática de sites gratuitamente. Você é cobrado apenas pelo armazenamento de blob que seu site utiliza e pelos custos operacionais. Para obter mais detalhes sobre os preços do Armazenamento de Blobs do Azure, consulte a Página de Preços do Armazenamento de Blobs do Azure.
Métricas do
Você pode habilitar métricas em páginas estáticas do site. Depois de habilitar as métricas, as estatísticas de tráfego em arquivos no contêiner $web são relatadas no painel de métricas.
Para habilitar métricas em suas páginas de sites estáticos, consulte Habilitar métricas em páginas de sites estáticos.
Suporte de funcionalidades
O suporte para esse recurso pode ser afetado pela habilitação do Data Lake Storage Gen2, do protocolo NFS (Network File System) 3.0 ou do SSH File Transfer Protocol (SFTP). Se você habilitou qualquer um desses recursos, consulte Suporte ao recurso de Armazenamento de Blob nas contas de Armazenamento do Azure para avaliar o suporte para esse recurso.
Perguntas mais frequentes (FAQ)
A firewall do Armazenamento do Microsoft Azure funciona com um site estático?
Sim. As regras de segurança de rede da conta de armazenamento, incluindo firewalls baseadas em IP e da VNet, são suportadas para o ponto final do site estático e podem ser utilizadas para proteger o seu site.
Os sites estáticos suportam o Microsoft Entra ID?
Não Um site estático suporta apenas acesso de leitura anônimo para arquivos no contêiner $web .
Como posso utilizar um domínio personalizado com um site estático?
Pode configurar um domínio personalizado com um site estático através da Rede de Entrega de Conteúdos do Microsoft Azure (CDN do Azure). A CDN do Azure fornece latências baixas consistentes ao site a partir de qualquer lugar no mundo.
Como faço para usar um certificado SSL (Secure Sockets Layer) personalizado com um site estático?
Pode configurar um certificado SSL personalizado com um site estático através da CDN do Azure. A CDN do Azure fornece latências baixas consistentes ao site a partir de qualquer lugar no mundo.
Como devo proceder para adicionar cabeçalhos e regras personalizados com um site estático?
Pode configurar o cabeçalho de anfitrião para um site estático através da CDN do Azure – Verizon Premium. Gostaríamos de obter os seus comentários aqui.
Por que estou a receber um erro HTTP 404 de um site estático?
Um erro 404 pode acontecer se você se referir a um nome de arquivo usando um caso incorreto. Por exemplo: Index.html
em vez de index.html
. Os nomes de ficheiros e as extensões no URL de um site estático são sensíveis às maiúsculas e minúsculas, embora sejam servidos por HTTP. Isso também pode acontecer se o ponto de extremidade da CDN do Azure ainda não estiver provisionado. Aguarde até 90 minutos depois de provisionar uma nova CDN do Azure para que a propagação seja concluída.
Porque é que o diretório de raiz do site não está a redirecionar para a página de índice predefinida?
No portal do Azure, abra a página de configuração do site estático da sua conta e localize o nome e a extensão definidos no campo Nome do documento de índice. Confirme que este nome é exatamente o mesmo que o nome do ficheiro localizado no contentor $web da conta de armazenamento. Os nomes de ficheiros e as extensões no URL de um site estático são sensíveis às maiúsculas e minúsculas, embora sejam servidos por HTTP.