Compartilhar via


Hospedagem de site estático 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 denominado $web. Hospedar seu conteúdo no Armazenamento do Azure permite que você use arquiteturas sem servidor que incluem Azure Functions e outros serviços de PaaS (plataforma como serviço). A hospedagem de sites estáticos do Armazenamento do Microsoft Azure é uma ótima opção nos casos em que você não precisa de um servidor Web para renderizar o conteúdo.

Os sites estáticos têm algumas limitações. Por exemplo, se você desejar configurar cabeçalhos, precisará usar a CDN do Azure (Rede de Distribuição de Conteúdo do Azure). Não há como configurar cabeçalhos como parte do recurso de site estático. Além disso, AuthN e AuthZ não têm suporte.

Se esses recursos forem importantes para seu cenário, considere usar Aplicativos Web Estáticos do Azure. É uma ótima alternativa para sites estáticos e também é adequada nos casos em que você não precisa de um servidor Web para renderizar o conteúdo. Você pode configurar os cabeçalhos, e AuthN/AuthZ tem suporte completo. Os Aplicativos Web Estáticos do Azure fornecem um fluxo de trabalho de CI/CD (integração contínua e entrega contínua) totalmente gerenciado desde a origem do GitHub até a implantação global.

Se você precisar de um servidor Web para renderizar conteúdo, poderá usar Serviço de Aplicativo do Azure.

Configuração de um site estático

A hospedagem de site estática é um recurso que você precisa habilitar na conta de armazenamento.

Para habilitar a hospedagem do site estático, 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 Blobs chamado $web ainda não existir na conta, isso será criado para você. Adicione os arquivos do seu site a esse contêiner.

Para obter orientações passo a passo, confira Hospedar site estático no Armazenamento do Azure.

Azure Storage static websites metrics metric

Os arquivos no contêiner $web diferenciam maiúsculas de minúsculas, são atendidos por meio de solicitações de acesso anônimo e estão disponíveis somente por meio de operações de leitura.

Carregamento de conteúdo

Você pode usar qualquer uma dessas ferramentas para carregar conteúdo para o contêiner $web:

Exibição de conteúdo

Os usuários podem exibir o conteúdo do site de um navegador usando a URL pública do site. É possível localizar a URL usando o portal do Azure, a CLI do Azure ou o PowerShell. Confira Localizar a URL do site.

O documento de índice especificado quando você habilita a hospedagem de site estático é exibido quando os usuários abrem o site e não especificam um arquivo (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 ao habilitar o site, uma página 404 padrão é retornada ao usuário.

Pontos de extremidade secundários

Se você configurar a 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 que estão disponíveis no ponto de extremidade secundário nem sempre estão em sincronia com os arquivos disponíveis no ponto de extremidade primário.

Impacto de configurar o nível de acesso no contêiner da Web

É possível modificar o nível de acesso anônimo do contêiner $web, mas fazer essa modificação não impacta no ponto de extremidade de site estático primário, 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 de site estático primário não seja afetado, uma alteração no nível de acesso anônimo tem impacto sobre o ponto de extremidade de serviço de blob primário.

Por exemplo, caso altere o nível de acesso anônimo do contêiner $web de Privado (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 do site estático primário https://contosoblobaccount.z22.web.core.windows.net/index.html não será alterado.

No entanto, o acesso anônimo ao ponto de extremidade do serviço de blob primário https://contosoblobaccount.blob.core.windows.net/$web/index.html é alterado, permitindo que os usuários abram esse arquivo usando qualquer um desses dois pontos de extremidade.

Desabilitar o 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, confira Corrigir o acesso de leitura anônimo aos dados de blob (implantações do Azure Resource Manager).

Mapeamento de um domínio personalizado para uma URL de site estático

Você pode disponibilizar seu site estático por meio de um domínio personalizado.

É mais fácil habilitar o acesso HTTP para seu domínio personalizado, pois o Armazenamento do Azure dá suporte nativo a ele. Para habilitar o HTTPS, você precisará usar a CDN do Azure porque o Armazenamento do Azure ainda não oferece suporte nativo a HTTPS com domínios personalizados. Confira Mapear um domínio personalizado para um ponto de extremidade do Armazenamento de Blobs do Azure para ter orientações passo a passo.

Se a conta de armazenamento estiver configurada para exigir transferência segura via HTTPS, os usuários deverão usar o ponto de extremidade HTTPS.

Dica

Hospede seu domínio no Azure. Para saber mais, confira Hospedar seu domínio no DNS do Azure.

Adição de cabeçalhos de HTTP

Não há como 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. Confira Referência do mecanismo de regras Standard para a CDN do Azure.

Se quiser usar cabeçalhos para controlar o armazenamento em cache, confira Controlar o comportamento de cache da CDN do Azure com regras de cache.

Hospedagem de site de várias regiões

Se você planeja hospedar um site em várias regiões geográficas, recomendamos que use uma rede de distribuição de conteúdo para o cache regional. Use o Azure Front Door se quiser fornecer conteúdo diferente em cada região. Ele também fornece recursos de failover. O Gerenciador de Tráfego do Azure não é recomendado caso você planeje usar um domínio personalizado. Podem surgir problemas devido a como o Armazenamento do Microsoft Azure verifica nomes de domínio personalizados.

Permissões

A permissão para habilitar o site estático é Microsoft.Storage/storageAccounts/blobServices/write ou a chave compartilhada. As funções incorporadas que fornecem esse acesso incluem o Colaborador da Conta de Armazenamento.

Preços

Você pode habilitar a hospedagem de sites estáticos gratuitamente. Você é cobrado apenas pelo armazenamento de blobs que seu site utiliza e pelos custos operacionais. Para obter mais detalhes sobre preços para Armazenamento de Blob do Azure, confira Página de Preços do Armazenamento de Blob do Azure.

Métricas

Você pode habilitar métricas em páginas de sites estáticos. Depois que você tiver habilitado as métricas, as estatísticas de tráfego nos arquivos no contêiner $web serão relatadas no painel de métricas.

Para habilitar as métricas em suas páginas de sites estáticos, confira Habilitar métricas em páginas de sites estáticos.

Suporte a recursos

O suporte para esse recurso pode ser afetado ao habilitar o Data Lake Storage Gen2, o protocolo NFS (Sistema de Arquivos de Rede) 3.0 ou o protocolo SFTP (Protocolo de Transferência de Arquivo SSH). Se você tiver habilitado qualquer um desses recursos, consulte o Suporte a recursos de Armazenamento de Blobs nas contas de Armazenamento do Azure para avaliar o suporte para esse recurso.

Perguntas frequentes

O firewall de Armazenamento do Azure funciona com um site estático?

Sim. As regras de segurança de rede da conta de armazenamento, incluindo firewalls VNET e baseados em IP, têm suporte para o ponto de extremidade do site estático e podem ser usadas para proteger seu site.

Os sites estáticos oferecem suporte ao Microsoft Entra ID?

Não. Um site estático dá suporte apenas ao acesso de leitura anônimo para arquivos no contêiner $web.

Como usar um domínio personalizado com o site estático?

Você pode configurar um domínio personalizado com um site estático usando a CDN (Rede de Distribuição de Conteúdo) do Azure. A CDN do Azure fornece latências baixas consistentes para seu site de qualquer lugar do mundo.

Como fazer para usar um certificado SSL (protocolo SSL) personalizado com um site estático?

Você pode configurar um certificado SSL personalizado com um site estático usando a CDN do Azure. A CDN do Azure fornece latências baixas consistentes para seu site de qualquer lugar do mundo.

Como adicionar cabeçalhos e regras personalizados a um site estático?

Você pode configurar o cabeçalho do host para um site estático usando a CDN do Azure - Verizon Premium. Gostaríamos de ouvir sua opinião aqui.

Por que estou recebendo um erro HTTP 404 de um site estático?

Um erro 404 pode acontecer se você se referir a um nome de arquivo usando maiúsculas e minúsculas incorretas. Por exemplo, Index.html em vez de index.html. O nomes de arquivos e extensões em uma URL de site estático diferenciam maiúsculas de minúsculas, embora sejam veiculados por HTTP. Isso também pode acontecer se o ponto de extremidade da CDN do Azure ainda não for provisionada. Aguarde até 90 minutos depois da provisão de uma nova CDN do Azure para que a propagação seja concluída.

Por que o diretório raiz do site não está redirecionando para a página de índice padrão?

No portal do Azure, abra a página de configuração estática do site da sua conta e localize o nome e a extensão que está definido no campo nome do documento de índice. Verifique se esse nome é exatamente o mesmo que o nome do arquivo localizado no contêiner de $Web da conta de armazenamento. Os nomes de arquivos e extensões em uma URL de site estático diferenciam maiúsculas de minúsculas, embora sejam veiculados por HTTP.

Próximas etapas