CLOUD HACK: Come preparare la produzione GRATUITAMENTE hosting di siti web statici

Questo articolo ti guiderà attraverso tutto ciò che devi fare per ottenere il tuo sito Web statico ospitato e pronto per la produzione.

Supporterà una quantità folle di traffico e non ti costerà nulla!

Insieme giocheremo con i record DNS e altre cose di basso livello, ma è più facile di quanto sembri - e ne vale la pena.

Non sono riuscito a trovare un modo per ottenere un nome di dominio gratuito, quindi, nello spirito della vera trasparenza, dovrei dire che dovrai pagare per questo.

introduzione

Faremo in modo che Google e CloudFlare facciano il duro lavoro per noi, quindi dovremo solo costruire il sito Web e impostare tutto.

In questo articolo, faremo:

  • Imposta un progetto di Google App Engine
  • Distribuire un sito Web sul cloud
  • Ottieni il nostro nome di dominio
  • Configura il nostro nome di dominio con CloudFlare
  • Gioca con le impostazioni DNS per indirizzare il dominio sul nostro sito web
  • Configurare la memorizzazione nella cache e HTTPS sul dominio per supportare la scalabilità di massa

Sembra difficile, soprattutto se non sei abituato a questi termini, ma esamineremo tutti i passaggi insieme.

Si prega di considerare la condivisione di questo sui social media per gli altri che potrebbero trovarlo utile o inviare il collegamento a chiunque si sappia che sta pagando per l'hosting di siti Web statici.

Che cos'è Google App Engine?

Google App Engine è un servizio di Google che ti consente di creare e ospitare applicazioni Web complesse eseguite su scala estremamente elevata. Puoi interagire con centinaia di API per risolvere tutti i tipi di sfide tecniche come l'archiviazione di dati, l'esecuzione di query, l'accodamento di attività, la fornitura di funzionalità di apprendimento automatico, l'invio di e-mail ... oh sì e la fornitura di HTML e CSS.

La quota gratuita su Google App Engine significa che il tuo sito Web può ricevere una certa quantità di traffico prima che tu debba iniziare a pagarlo; ma in realtà, non ci avvicineremo a nulla grazie a CloudFlare.

Che cos'è CloudFlare?

CloudFlare è piuttosto difficile da descrivere, ma per i nostri scopi puoi pensarlo come una fantastica (e gratuita) funzionalità di memorizzazione nella cache dei contenuti in cui i server CloudFlare terranno una copia del tuo sito Web e lo serviranno direttamente ai tuoi visitatori. Vale la pena notare che CloudFlare archivia molte copie del contenuto in posizioni chiave in tutto il mondo, in modo che i browser web dei visitatori non debbano raggiungere molto lontano su Internet per ottenerlo.

Per i siti Web che non cambiano spesso, puoi impostare i criteri della cache in modo che siano piuttosto aggressivi, quindi il tuo progetto Google App Engine finirà per non ricevere molte richieste. Se aggiorni il tuo sito, dovrai semplicemente attendere la scadenza della cache o eliminarla manualmente (ti spiegherò in seguito).

PASSAGGIO 1: crea il tuo sito web

La prima cosa da fare è costruire il tuo sito web. Fallo utilizzando tutti gli strumenti a cui sei abituato, l'obiettivo è quello di finire con una cartella che contiene l'intero sito web. Non può contenere alcun contenuto dinamico, quindi gli script CGI, le pagine aspx, il codice Ruby on Rails, ecc. Sono tutti fuori dalla tabella. I siti Web statici di solito sono solo file HTML, CSS, JavaScript, immagini, ecc.

Assicurati che abbia una pagina index.html

Quando i visitatori raggiungono il tuo nome di dominio senza percorso, verrà visualizzata la pagina index.html, quindi assicurati che esista.

Metti tutto in una cartella www

Aggiungeremo una cartella per contenere il nostro sito Web statico in modo che la struttura del nostro progetto sia simile alla seguente:

Metti l'intero sito Web in una cartella `www`

Non preoccuparti di quel file app.yaml in seguito; lo aggiungeremo presto.

Puoi pensare alla cartella www come a ciò che verrà offerto quando i tuoi visitatori visiteranno il sito Web mywebsite.com.

PASSAGGIO 2: distribuzione su Google App Engine

Ora hai il tuo sito Web, è tempo di distribuirlo su Google App Engine.

Accedi alla console di Google Cloud Platform

Vai su https://console.cloud.google.com e accedi utilizzando il tuo account Google.

Crea un progetto

Seleziona Crea progetto dal menu e scegli un nome di progetto adatto che rifletta il tuo nome di dominio. Quindi, se il tuo dominio è matswebsite.com, forse chiama questo progetto Mats Website. Genererà automaticamente un ID progetto per te, ma puoi fare clic sul collegamento Modifica per cambiarlo e sceglierne uno tuo. Utilizzeremo questo ID progetto in un secondo momento, quindi rendilo piacevole e facile da ricordare. L'ID progetto deve essere univoco a livello globale, motivo per cui l'utilizzo del dominio non è una cattiva idea, ad es. matswebsitecom.

Fai clic su CREA.

Creazione di un progetto su Google Cloud Platform

Dopo poco tempo verrà creato il progetto e potremo abilitare Google App Engine.

Accedi al menu (fai clic sulle tre righe nell'angolo in alto a sinistra) e scegli App Engine per accedere alla console di App Engine.

Installa Google Cloud SDK

Vai su https://cloud.google.com/sdk/ e scarica Google Cloud SDK per il tuo computer. L'SDK contiene strumenti da riga di comando che ci consentono di utilizzare per distribuire il tuo sito Web.

Aggiungi un file app.yaml

Per comunicare a Google App Engine come vorremmo distribuire il nostro sito, dobbiamo creare un piccolo file di configurazione nella cartella principale del nostro sito Web.

Inserisci quanto segue nel nuovo file:

runtime: vai
api_version: go1
gestori:
- url: /
  static_files: www / index.html
  upload: www / index.html
- url: /(.*)
  static_files: www / \ 1
  upload: www /(.*)

Nei file YAML, gli spazi bianchi sono importanti, quindi assicurati che ci siano due spazi prima dei file statici e delle righe di caricamento.

Puoi saperne di più sul file app.yaml leggendo la documentazione, per ora è sufficiente sapere che stiamo fornendo staticamente il contenuto dalla cartella www.

Aggiungi un file main.go

Affinché il nostro progetto sia un progetto Go valido, dobbiamo aggiungere un codice Go. Non ti preoccupare, ti fornirò la quantità minima assoluta di codice richiesta.

Crea un file nella tua cartella (insieme al file app.yaml) chiamato main.go e inserisci il seguente codice:

app pacchetto
func main () {}
Se non hai mai sentito parlare di Go prima, consiglio vivamente di dargli un'occhiata: è una lingua divertente ed estremamente utile: perché non partecipare al tour?

schierare

In una shell terminale, utilizzare innanzitutto il comando gcloud (da Google Cloud SDK) per accedere:

gcloud auth login
Se rimani bloccato qui, vai alla guida Quickstart per chiedere aiuto.

Questo aprirà un browser web e ti chiederà di accedere al tuo account Google. Al termine, il terminale indicherà che l'accesso è andato a buon fine.

Ora cd nella cartella del tuo sito Web in modo che facendo ls o dir mostrerà la cartella www nell'elenco.

Ora imposta il nome del progetto:

gcloud config set project PROJECT_ID

Sostituisci PROJECT_ID con l'ID progetto impostato quando hai creato il progetto in Google Cloud Console.

Ora inizieremo la distribuzione:

distribuzione dell'app gcloud

Se l'SDK di Google Cloud necessita di componenti aggiuntivi (per me ha richiesto l'app-engine-go), ti verrà richiesto di installarli. Rispondi Y (per sì) per ogni domanda.

Alla fine ti chiederà se vuoi distribuire l'app: premi Y e inserisci di nuovo.

Dopo un po ', l'applicazione verrà distribuita e accessibile tramite il dominio appspot.com:

https://PROJECT_ID.appspot.com
Ricorda di sostituire PROJECT_ID con l'ID del tuo progetto.

PASSAGGIO 3: imposta il nome del tuo dominio

Seleziona e acquista un dominio

Affinché i visitatori possano vedere il tuo sito Web, dovranno visitare un nome di dominio e, sebbene tu possa utilizzare l'appspot.com che Google App Engine ti offre gratuitamente, è molto più bello averne uno tuo.

Vai su namecheap.com o cerca una società che vende nomi di dominio e acquista il tuo dominio. Dovrai essere in grado di cambiare i nameserver, quindi assicurati che la società supporti questo (Namecheap lo fa).

Installa CloudFlare

Vai su CloudFlare.com e crea un account. Quindi seleziona Aggiungi sito dalla barra dei menu in alto. Inserisci il tuo dominio e fai clic su Inizia scansione. Una volta terminato di farlo, è una magia che sa cosa sa fare, fai clic su Continua installazione e segui i passaggi rimanenti, facendo clic su Continua dove puoi fino a raggiungere la pagina Seleziona un piano CloudFlare.

Scegli il piano GRATUITO e fai clic su Continua.

Il piano del sito Web gratuito ha tutto ciò di cui abbiamo bisogno: CloudFlare è piuttosto generoso.

Ti verrà quindi chiesto di aggiornare i tuoi nameserver, quindi torna al punto in cui hai acquistato il tuo nome di dominio e inserisci i valori forniti da CloudFlare.

Per instradare il traffico attraverso CloudFlare, è necessario aggiornare i nameserver. CloudFlare ti dice quali valori usare.

In Namecheap, vai alla Dashboard e fai clic su Gestisci accanto al tuo dominio. Quindi cerca NAMESERVERS e scegli DNS personalizzato. Copia e incolla i nameserver nelle due caselle fornite:

Namecheap ti consente di specificare i tuoi nameserver. Ricorda di fare clic sul piccolo segno di spunta verde per confermare le modifiche.

Al termine, fai clic su Continua in CloudFlare e attendi. Potrebbe essere necessario del tempo perché le modifiche abbiano effetto, quindi vai a prendere una tazza di tè o altra bevanda appropriata (o inappropriata).

Alla fine, diventerà verde (puoi aggiornare tutte le volte che vuoi):

Una volta aggiornati i nameserver, il tuo sito sarà attivo su CloudFlare.

Informa App Engine sul tuo dominio

Torna in Google Cloud Console, accedi nuovamente alla console di App Engine e seleziona Impostazioni.

Nella scheda Domini personalizzati, selezionare Aggiungi un dominio personalizzato.

Dovrai verificare di essere il proprietario del dominio prima di poter chiedere a Google App Engine di pubblicare i contenuti al suo interno, selezionando Verifica un nuovo dominio dall'elenco e immettendolo nella casella fornita.

Facendo clic su Verifica avvieremo un nuovo processo in cui possiamo dimostrare di possedere e controllare quel nome di dominio. Nella nuova finestra, seleziona il nome del tuo provider (si spera Namecheap - poiché è facile) e nota che ti viene chiesto di aggiungere un record DNS TXT:

Per dimostrare a Google che controlliamo un nome di dominio, dobbiamo aggiungere un codice DNS speciale che forniscono.

Non preoccuparti, non è così spaventoso come sembra. Seleziona il testo strano all'interno della casella, copialo e torna a CloudFlare, e aggiungeremo il valore.

Assicurati che il tuo dominio sia selezionato in CloudFlare e scegli la scheda DNS.

Nella parte superiore della tabella, c'è un modulo in cui possiamo aggiungere il record che Google vuole:

Nel campo Nome, inserisci un carattere @ e, per il Contenuto, incolla il valore che Google ci ha dato. Fai clic su Aggiungi record.

Sarà aggiunto all'elenco dei record DNS.

Ora torna alla Google Cloud Platform e fai clic su Verifica.

Questo potrebbe richiedere del tempo, quindi non preoccuparti se non funziona immediatamente. Finché hai incollato il valore corretto in CloudFlare, alla fine si aggiornerà. Stai effettivamente aspettando che i server DNS si propaghino, il che suona più magico di quello che è - ma in entrambi i casi, se non vuoi aspettare, considera l'utilizzo dei server DNS pubblici di Google, sono molto veloci.

Infine, otterrai la pagina di successo sopra.

Torna in Google Cloud Console> Motore di app> Impostazioni> Domini personalizzati, fai clic su Aggiorna domini e nota che il tuo dominio è ora un'opzione nell'elenco a discesa. Selezionalo e fai clic su Continua, quindi fai clic su Salva mappature.

Dopo un momento, fai di nuovo clic su Continua e noti che Google App Engine ora ci fornisce nuove impostazioni DNS. Dobbiamo assicurarci che la nostra pagina DNS CloudFlare abbia gli stessi valori.

Google vuole che inseriamo ciascuno di questi valori nella console di CloudFlare: un po 'di copia e incolla non fa mai male a nessuno, giusto?

Di nuovo in CloudFlare, premi la X accanto a tutti i record DNS tranne quello TXT che abbiamo aggiunto (lo lasceremo lì in modo che Google sappia che controlliamo sempre quel dominio).

Ora, per ogni elemento nella pagina di Google, crea un record in CloudFlare. Questa è la cosa più difficile che dobbiamo fare, leggi prima questi suggerimenti:

  • Il menu a discesa TXT è dove specifichi il tipo (avrai bisogno di A, AAAA e CNAME)
  • In Google App Engine, il campo Alias ​​è il nome in Cloudflare. In assenza di alias, utilizzare nuovamente il carattere @. (Puoi anche lasciarlo vuoto e CloudFlare saprà cosa intendi oppure ti chiederà di impostarlo su @)
  • Lasciare il TTL come TTL automatico
  • CloudFlare sa cosa sta facendo ed è difficile fare un errore, quindi copia e incolla ogni valore e fidati di CloudFlare per dirti se sbagli
  • Fai attenzione agli spazi bianchi aggiuntivi durante la copia e incolla, potrebbe causare un errore di convalida ma è difficile da vedere

Finirà così:

Torna in Google App Engine, fai clic su Fine.

Dai a Internet il tempo di recuperare il ritardo

Affinché il tuo dominio funzioni, Internet deve recuperare il ritardo con questi cambiamenti. Dicono che questo può richiedere 24 ore, ma se stai utilizzando i server DNS di Google di solito è piuttosto immediato.

Mentre aspetti, puoi abilitare la memorizzazione nella cache aggressiva e HTTPS su CloudFlare.

PASSAGGIO 4: configurazione della memorizzazione nella cache e HTTPS

Il trucco per mantenere libero l'hosting statico, indipendentemente da quanto traffico ottieni, è abilitare la memorizzazione nella cache in CloudFlare.

Fai clic sulla scheda Regole pagina e fai clic su Crea regola pagina.

Nella casella di corrispondenza URL, inserisci il tuo dominio nel modulo: * .mywebsite.com / * - che indica che la regola deve essere applicata indipendentemente dal sottodominio e dal percorso.

Nell'impostazione, selezionare Edge Cache TTL e impostare il valore su un mese. Fai clic su Salva e distribuisci.

L'impostazione di Edge Cache TTL su un mese (in teoria) farà sì che il nostro sito Web Google App Engine venga colpito solo una volta al mese. Il resto del tempo, il CDN edge di CloudFlare lo servirà. Ovviamente, questo è aggressivo: puoi giocare con le impostazioni per trovare i valori giusti per te.

Per rendere il nostro sito accessibile tramite HTTPS, aggiungeremo un'altra regola di pagina:

Questa volta, inserisci il valore di corrispondenza URL come: http: //*.mywebsite.com/*

Utilizzando una regola di pagina in CloudFlare, possiamo dire che usa sempre HTTPS per il nostro sito Web.

Scegli Usa sempre HTTPS dall'elenco e fai clic su Salva e distribuisci.

Se lo si desidera, è possibile aggiungere un URL di inoltro per assicurarsi che tutto il traffico sia indirizzato a www.mywebsite.com o mywebsite.com.

Queste sono le Regole della pagina finali per honorablecode.com

Svuota la cache ogni volta che vuoi

Ogni volta che apporti modifiche al tuo sito Web, entra nella console di CloudFlare, accedi alla scheda Caching e scegli Elimina tutto dal menu a discesa:

Le nuove richieste per il tuo sito Web verranno ora indirizzate a Google App Engine e verrà pubblicata l'ultima versione (e memorizzata nella cache da CloudFlare per future richieste).

Il tuo sito web è live!

Una volta raggiunti i server DNS, il tuo sito Web statico gratuito sicuro sarà online.

Conclusione

Semplicemente utilizzando le opzioni GRATUITE di Google App Engine e CloudFlare e un po 'di magia DNS, siamo in grado di ospitare gratuitamente il nostro sito Web statico pronto per la produzione.

Noi eravamo capaci di:

  • Imposta un progetto di Google App Engine
  • Distribuire un sito Web sul cloud
  • Ottieni il nostro nome di dominio
  • Configura il nostro nome di dominio con CloudFlare
  • Gioca con le impostazioni DNS per indirizzare il dominio sul nostro sito web
  • Configurare la memorizzazione nella cache e HTTPS sul dominio per supportare la scalabilità di massa

Buon lavoro.

Compra il mio libro

In teoria, ti ho appena risparmiato un sacco di soldi, quindi perché non dire grazie comprando il mio libro. :)

Se ti piace fare cose come in questo articolo, allora ti piacerà cosa puoi fare con Go. Nel mio libro Go Programming Blueprints, costruiamo cose reali. Fletti i muscoli degli sviluppatori.

Ottieni la tua copia da https://www.packtpub.com/application-development/go-programming-blueprints-second-edition

Inoltre, tweet me @matryer se rimani bloccato, e vedrò se posso aiutarti.