Nesta página, mostraremos exemplos e dicas sobre como usar buckets para hospedar um site estático.
Páginas especializadas
Páginas de índice
Uma página de índice (também chamada de índice de diretórios do servidor da Web) é um arquivo disponibilizado aos visitantes quando eles solicitam um URL sem arquivo associado. Quando você atribui uma propriedade MainPageSuffix
, o Cloud Storage procura um arquivo com esse nome e com o prefixo correspondente ao URL solicitado pelo visitante.
Por exemplo, digamos que você defina MainPageSuffix
do seu site estático como
index.html
. Além disso, digamos que você não tenha um arquivo chamado directory
no seu
bucket www.example.com
. Nessa situação, se um usuário solicitar o URL
http://www.example.com/directory
, o Cloud Storage tenta veicular o arquivo
www.example.com/directory/index.html
. Caso esse arquivo também não exista, o Cloud Storage retornará uma página de erro.
O MainPageSuffix
também controla o arquivo exibido quando os usuários solicitam o
site de nível superior. Continuando com o exemplo acima, se um usuário solicitar
http://www.example.com
, o Cloud Storage tenta veicular o arquivo
www.example.com/index.html
.
Ao tentar acessar um URL com uma barra no final, como http://www.example.com/dir/
, consulte Solução de problemas.
Página de erro
A página de erro é o arquivo retornado aos visitantes do site que solicitarem um URL que não corresponde a um arquivo existente. Se você tiver atribuído um MainPageSuffix
, o Cloud Storage só retornará a página de erro se
não houver um arquivo com o nome solicitado nem uma página de índice aplicável.
Ao retornar uma página de erro, o código de resposta http é 404
. A propriedade que
controla qual arquivo atua como a página de erro é NotFoundPage
. Se você não
definir NotFoundPage
, os usuários recebem uma página de erro genérica.
Exemplos de configuração do site
bucket de três objetos
Suponha que um bucket denominado www.example.com
tenha sido configurado como um site com as seguintes configurações e arquivos:
MainPageSuffix
= "index.html"NotFoundPage
= "404.html"- O bucket contém três objetos compartilhados publicamente: “index.html”, “404.html” e “dir/index.html”.
Na tabela a seguir, veja o conteúdo exibido para URLs selecionados:
URL solicitado | Conteúdo disponibilizado | Código de resposta HTTP |
---|---|---|
http://www.example.com http://www.example.com/ http://www.example.com/index.html |
O objeto "index.html". | 200 |
http://www.example.com/hello | O objeto "404.html". | 404 |
http://www.example.com/dir/index.html | O objeto "dir/index.html". | 200 |
http://www.example.com/dir | O objeto "dir/index.html". | 301 |
http://www.example.com/dir/ | O objeto "dir/index.html", presumindo que não haja objeto de zero bytes para /dir/ | 200 |
Um objeto vazio de zero bytes, se existir para /dir/. Consulte o tópico solução de problemas para remover este objeto zero bytes. | 301 |
bucket de dois objetos
Suponha que um bucket denominado www.example.com
tenha sido configurado como um site com as seguintes configurações e arquivos:
MainPageSuffix
= "main.html"NotFoundPage
= "404.html"- O bucket contém dois objetos compartilhados publicamente: "main.html" e "404.html".
Na tabela a seguir, veja o conteúdo exibido para URLs selecionados:
URL solicitado | Conteúdo disponibilizado | Código de resposta HTTP |
---|---|---|
http://www.example.com http://www.example.com/ |
O objeto "main.html". | 200 |
http://www.example.com/index.html | O objeto "404.html". | 404 |
Se um objeto for compartilhado publicamente, você também poderá vê-lo com o URL:
http://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME
Por exemplo, o URL de um objeto index.html
seria:
http://storage.googleapis.com/www.example.com/index.html
Para mais informações sobre como trabalhar com dados acessíveis publicamente, consulte Como acessar dados públicos.
Dicas sobre como trabalhar com um bucket configurado como um site
A seguir, algumas dicas a serem lembradas ao usar um bucket para hospedar um site estático.
Adicionar subdomínios
Suponha que você também queira disponibilizar conteúdo em test.example.com
, de um bucket diferente do que exibe conteúdo em www.example.com
. Sendo assim:
Crie um novo bucket para veicular seu conteúdo adicional.
Se você seguiu o tutorial em Como hospedar um site estático para exibir o conteúdo por HTTPS, edite o balanceador de carga no console do Google Cloud da seguinte maneira:
- Em Configuração de back-end, crie um novo bucket de back-end
test-bucket
selecionando o novo bucket criado. - Em Regras de host e caminho, adicione uma nova regra desta forma:
Hosts Paths Backends test.example.com /* test-bucket
Em Configuração de front-end, adicione um novo IP e uma porta de front-end com os mesmos valores da primeira configuração, com as exceções a seguir:
- Em Endereço IP, crie e reserve um novo endereço.
- Em Certificado, crie um novo certificado SSL para
test.example.com
.
- Em Configuração de back-end, crie um novo bucket de back-end
Depois de atualizar o balanceador de carga, adicione um novo registro
A
ao seu serviço de registro de domínio usando o endereço IP da nova configuração de front-end:NAME TYPE DATA test A IP_ADDRESS
Comportamento da API
As configurações de site MainPageSuffix
e NotFoundPage
são usadas apenas
para solicitações que chegam ao Cloud Storage por meio de um
redirecionamento CNAME
ou A
. Por exemplo, uma solicitação para www.example.com
mostra a página de índice, mas uma solicitação equivalente para storage.googleapis.com/www.example.com
não.
Assim, o comportamento da API para solicitações de domínios do Cloud Storage, como storage.googleapis.com/www.example.com
, é preservado. Por exemplo, é possível listar objetos no bucket www.example.com
como faria com qualquer outro No caso do bucket www.example.com
, a listagem de objetos que você recebe inclui 404.html
e index.html
.
Hospedar recursos estáticos para um site dinâmico
É possível usar o Cloud Storage para hospedar recursos estáticos de um site dinâmico hospedado, por exemplo, no Google App Engine ou no Google Compute Engine. Algumas vantagens de hospedar em um bucket seus recursos estáticos, como imagens ou arquivos JavaScript, incluem:
O Cloud Storage se comporta como uma rede de fornecimento de conteúdo (CDN) porque os objetos legíveis publicamente são armazenados em cache na rede do Cloud Storage por padrão.
As taxas de largura de banda para acessar o conteúdo geralmente custam menos com o Cloud Storage.
A carga nos servidores da Web é reduzida ao disponibilizar o conteúdo estático do Cloud Storage.
Ao hospedar recursos estáticos para um site dinâmico, não é preciso criar registros DNS e apontar para um bucket ou balanceador de carga como para um site estático. Por exemplo, é possível ter um bucket chamado www_example_com_assets
com recursos apropriados configurados como compartilhados publicamente e acessar esses recursos usando o domínio do Cloud Storage.
Por exemplo, se você tiver o arquivo JavaScript library.js
no bucket www_example_com_assets
compartilhado publicamente, será possível acessá-lo como http://storage.googleapis.com/www_example_com_assets/library.js
.
Definir parâmetros de cache
É possível controlar como ou se os recursos de seu site são armazenados em cache configurando os metadados Cache-Control
. Em geral, apenas defina metadados de controle de cache para objetos acessíveis a todos os usuários anônimos, o que é um requisito para qualquer objeto exibido de um bucket do Cloud Storage como parte de um site estático.
O Cloud Storage aplica uma configuração de controle de cache de 3600 segundos a objetos acessíveis a todos os usuários anônimos, a menos que você especifique configurações explícitas de controle de cache. Consulte Visualização e edição de metadados para mais instruções sobre como configurar metadados de objetos, como Cache-Control
.
Também é possível usar o Cloud CDN para armazenar em cache conteúdo externo com balanceamento de carga HTTP(S) perto dos usuários, o que geralmente reduz os valores gastos. Para mais informações, consulte Como armazenar em cache.
Monitorar suas cobranças
Se você estiver exibindo recursos de um bucket configurado como um site estático ou exibindo recursos estáticos de um bucket para um site dinâmico hospedado fora do Cloud Storage, monitore as cobranças do projeto que contém o bucket. A exibição de conteúdo gera custos de armazenamento, uso da rede e operações de recuperação do Cloud Storage. Saiba mais na página de preços do Cloud Storage.
Você também pode ter cobranças de rede caso use um balanceador de carga de aplicativo externo para configurar o HTTPS. Para mais detalhes, consulte Preços de rede.
O exemplo de precificação simples na página de exemplos de preços pode ser usado como uma aproximação para o caso de uso de um site estático de baixo tráfego. No entanto, o exemplo não considera cobranças associadas ao balanceador de carga de aplicativo externo, que geralmente pode ser a maior cobrança para hospedagem de sites estáticos. Use a calculadora de preços para gerar uma estimativa de custo com base no uso projetado.
Se você já é um usuário do Google Cloud, veja uma análise detalhada dos custos do projeto na página de faturamento.
Solução de problemas
Consulte Solução de problemas para problemas comuns relacionados ao uso de um bucket configurado para disponibilizar conteúdo estático do site.
A seguir
- Teste as soluções de início rápido do Google Cloud que usam o Cloud Storage.
- Saiba mais sobre outras opções de exibição na Web no Google Cloud.
Faça um teste
Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do Cloud Storage em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
Faça uma avaliação gratuita do Cloud Storage