Suggerimenti ed esempi di siti web statici

Puoi ospitare un sito web statico in un bucket Cloud Storage. Utilizza i bucket per pubblicare asset come HTML, CSS, JavaScript e immagini. Puoi anche configurare pagine di indice ed errore personalizzate e gestire i sottodomini del tuo sito. Questa pagina fornisce esempi di configurazione e suggerimenti per l'hosting di un sito web statico su Cloud Storage.

Per iniziare, consulta l'articolo Ospitare un sito web statico.

Pagine speciali

Quando configuri un bucket per ospitare un sito web statico, puoi specificare pagine speciali, come pagine indice e pagine di errore. Le sezioni seguenti descrivono queste pagine.

Pagine dell'indice

Una pagina indice (chiamata anche indice della directory del web server) è un file fornito ai visitatori quando richiedono un URL che non ha un file associato. Quando assegni una proprietà MainPageSuffix, Cloud Storage cerca un file con quel nome il cui prefisso corrisponde all'URL richiesto dal visitatore.

Ad esempio, supponiamo di impostare il MainPageSuffix del tuo sito web statico su index.html. Inoltre, supponiamo che tu non abbia alcun file denominato directory nel bucket www.example.com. In questa situazione, se un utente richiede l'URL http://www.example.com/directory, Cloud Storage tenta di pubblicare il file www.example.com/directory/index.html. Se anche questo file non esiste, Cloud Storage restituisce una pagina di errore.

Il MainPageSuffix controlla anche il file pubblicato quando gli utenti richiedono il sito di primo livello. Continuando l'esempio precedente, se un utente richiede http://www.example.com, Cloud Storage tenta di pubblicare il file www.example.com/index.html.

Quando tenti di accedere a un URL con una barra finale, ad esempio http://www.example.com/dir/, consulta la sezione Risoluzione dei problemi.

Pagina di errore

La pagina di errore è il file restituito ai visitatori del tuo sito statico che richiedono un URL che non corrisponde a un file esistente. Se hai assegnato un MainPageSuffix, Cloud Storage restituisce la pagina di errore solo se non è presente un file con il nome richiesto né una pagina indice applicabile.

Quando viene restituita una pagina di errore, il codice di risposta HTTP è 404. La proprietà che controlla quale file funge da pagina di errore è NotFoundPage. Se non imposti NotFoundPage, gli utenti visualizzano una pagina di errore generica.

Esempi di configurazione del sito web

Bucket con tre oggetti

Supponiamo che un bucket denominato www.example.com sia stato configurato come sito web con le seguenti impostazioni e file:

  • MainPageSuffix = "index.html"
  • NotFoundPage = "404.html"
  • Il bucket contiene tre oggetti condivisi pubblicamente: "index.html", "404.html" e "dir/index.html".

La seguente tabella mostra i contenuti pubblicati per gli URL selezionati:

URL richiesto Contenuti pubblicati Codice di risposta HTTP
http://www.example.com
http://www.example.com/
http://www.example.com/index.html
L'oggetto "index.html". 200
http://www.example.com/hello L'oggetto "404.html". 404
http://www.example.com/dir/index.html L'oggetto "dir/index.html". 200
http://www.example.com/dir Una risposta con un corpo vuoto e un'intestazione Location che punta a "dir/index.html". 301
http://www.example.com/dir/ L'oggetto "dir/index.html", supponendo che non esista alcun oggetto di zero byte per /dir/ 200
Un oggetto vuoto di zero byte, se esiste per /dir/. Consulta l'argomento Risoluzione dei problemi per rimuovere questo oggetto di zero byte. 301

Bucket a due oggetti

Supponiamo che un bucket denominato www.example.com sia stato configurato come sito web con le seguenti impostazioni e file:

  • MainPageSuffix = "main.html"
  • NotFoundPage = "404.html"
  • Il bucket contiene due oggetti condivisi pubblicamente: "main.html" e "404.html".

La seguente tabella mostra i contenuti pubblicati per gli URL selezionati:

URL richiesto Contenuti pubblicati Codice di risposta HTTP
http://www.example.com
http://www.example.com/
L'oggetto "main.html". 200
http://www.example.com/index.html L'oggetto "404.html". 404

Se un oggetto viene condiviso pubblicamente, puoi anche visualizzarlo con l'URL:

http://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME

Ad esempio, l'URL di un oggetto index.html sarebbe:

http://storage.googleapis.com/www.example.com/index.html

Per saperne di più su come utilizzare i dati accessibili pubblicamente, consulta la sezione Accesso ai dati pubblici.

Suggerimenti per lavorare con un bucket configurato come sito web

Di seguito sono riportati alcuni suggerimenti da tenere presente quando utilizzi un bucket per ospitare un sito web statico.

Aggiungere sottodomini

Supponiamo che tu voglia pubblicare contenuti anche all'indirizzo test.example.com, da un bucket diverso da quello che pubblica contenuti all'indirizzo www.example.com. Ecco come fare:

  1. Crea un nuovo bucket per pubblicare i contenuti aggiuntivi.

  2. Se hai seguito il tutorial Hosting di un sito web statico per pubblicare i tuoi contenuti tramite HTTPS, modifica il bilanciatore del carico nella consoleGoogle Cloud come segue:

    1. Per Configurazione backend, crea un nuovo bucket di backend test-bucket selezionando il nuovo bucket che hai creato.
    2. Per Regole host e percorso, aggiungi una nuova regola nel seguente modo:
      Hosts                  Paths     Backends
      test.example.com       /*        test-bucket
      
    3. Per la Configurazione frontend, aggiungi un nuovo IP e porta frontend con gli stessi valori della prima configurazione, con le seguenti eccezioni:

      • In Indirizzo IP, crea e prenota un nuovo indirizzo IP.
      • In Certificato, crea un nuovo certificato SSL per test.example.com.
  3. Dopo aver aggiornato il bilanciatore del carico, aggiungi un nuovo record A al servizio di registrazione del dominio utilizzando l'indirizzo IP della nuova configurazione frontend:

    NAME                  TYPE     DATA
    test                  A        IP_ADDRESS
    

Comportamento delle API

Le configurazioni dei siti web MainPageSuffix e NotFoundPage vengono utilizzate solo per le richieste che arrivano a Cloud Storage tramite un reindirizzamento CNAME o A. Ad esempio, una richiesta a www.example.com mostra la pagina indice, ma una richiesta equivalente a storage.googleapis.com/www.example.com no.

Pertanto, il comportamento dell'API per le richieste ai domini Cloud Storage, ad esempio storage.googleapis.com/www.example.com, viene mantenuto. Ad esempio, puoi continuare a elencare gli oggetti nel bucket www.example.com come faresti per qualsiasi altro bucket. Nel caso del bucket www.example.com, l'elenco degli oggetti che ricevi include 404.html e index.html.

Ospitare asset statici per un sito web dinamico

Puoi utilizzare Cloud Storage per ospitare asset statici per un sito web dinamico ospitato, ad esempio, in Google App Engine o in Google Compute Engine. Alcuni vantaggi dell'hosting degli asset statici, come immagini o file JavaScript, in un bucket includono:

  • Cloud Storage si comporta come una Content Delivery Network (CDN) perché gli oggetti leggibili pubblicamente vengono memorizzati nella cache nella rete Cloud Storage per impostazione predefinita.

  • I costi della larghezza di banda per l'accesso ai contenuti in genere sono inferiori con Cloud Storage.

  • Il carico sui server web viene ridotto quando i contenuti statici vengono pubblicati da Cloud Storage.

Quando ospiti asset statici per un sito web dinamico, non devi creare record DNS e rimandare a un bucket o a un bilanciatore del carico come fai per un sito web statico. Ad esempio, potresti avere un bucket denominato www_example_com_assets con asset appropriati configurati come condivisi pubblicamente e quindi accedere a questi asset utilizzando il dominio Cloud Storage. Ad esempio, supponiamo che tu abbia il file JavaScript library.js nel bucket www_example_com_assets condiviso pubblicamente, quindi puoi accedervi come