CLOUD HACK: Com acabar la producció d'allotjament web estàtic GRATUaticT

Aquest article us guiarà amb tot el que heu de fer per allotjar el vostre lloc web estàtic i preparar-vos per a la producció.

Donarà suport a una quantitat de trànsit insana i no us costarà res.

Junts tractarem els registres DNS i altres coses de baix nivell, però és més fàcil del que sembla i, sens dubte, val la pena.

No he trobat la manera d’obtenir un nom de domini gratuït. Per tant, amb l’esperit d’una veritable transparència, hauria de dir que s’ha de pagar per això.

introducció

Contractarem Google i CloudFlare perquè facin les coses més pesades per a nosaltres. Per tant, tot el que hem de fer és construir el lloc web i configurar-ho tot.

En aquest article farem:

  • Configureu un projecte de Google App Engine
  • Implementar un lloc web al núvol
  • Obteniu el nostre propi nom de domini
  • Configureu el vostre propi nom de domini amb CloudFlare
  • Proveu la configuració de DNS per dirigir el domini al nostre lloc web
  • Configureu la memòria cau i HTTPS al domini per donar suport a una escala massiva

Sembla difícil, sobretot si no esteu acostumat a aquests termes, però passarem junts per cada pas.

Compartiu a les xarxes socials amb altres usuaris que us puguin trobar útils o publiqueu l'enllaç a qualsevol persona que conegueu que paga per allotjar llocs web estàtics.

Què és Google App Engine?

Google App Engine és un servei subministrat per Google que us permet construir i allotjar aplicacions web complexes que s’executen a gran escala. Podeu interactuar amb centenars d’APIs per resoldre tot tipus de reptes tècnics com emmagatzemar dades, executar consultes, fer cues, exposar les capacitats d’aprenentatge automàtic, enviar correus electrònics, etc., així com desplegar per resoldre des de HTML i CSS.

El nivell gratuït de Google App Engine significa que el vostre lloc web pot obtenir un nombre determinat de visites abans d’haver de començar a pagar-les. Però gràcies a CloudFlare, no arribarem a res.

Què és CloudFlare?

CloudFlare és bastant difícil de descriure, però, per als nostres propòsits, podeu considerar-ho com una excel·lent (i gratuïta) funció de memòria cau de contingut, on els servidors CloudFlare emmagatzemen una còpia del vostre lloc web i la serveixen directament als visitants. Val a dir que CloudFlare emmagatzema moltes còpies del contingut en llocs clau de tot el món perquè els navegadors web dels visitants no hagin d’entrar molt a Internet per obtenir-los.

Per als llocs web que no canvien sovint, podeu establir les polítiques de memòria cau de manera força agressiva. Per tant, el vostre projecte de Google App Engine difícilment rebrà cap sol·licitud. Actualitzar el vostre lloc web significa simplement esperar que caduqui la memòria cau o esborreu-lo manualment (explicaré més endavant).

PAS 1: creeu el vostre lloc web

El primer que heu de fer és crear el vostre lloc web. Per fer-ho, utilitzeu totes les eines que heu utilitzat fins ara. L’objectiu és crear una carpeta que contingui tot el lloc web. No pot contenir contingut dinàmic, de manera que els scripts CGI, les pàgines ASPX, el codi Ruby on Rails, etc. estan fora de la taula. Els llocs web estàtics solen ser només fitxers HTML, CSS, JavaScript, imatges, etc.

Assegureu-vos que tingui una pàgina index.html

Quan els visitants visualitzen el vostre nom de domini sense cap camí, veuen la pàgina index.html. Assegureu-vos, doncs, que aquesta pàgina existeixi.

Posa-ho tot en una carpeta www

Afegirem una carpeta per contenir el nostre lloc web estàtic perquè l’estructura del nostre projecte sigui així:

Introduïu tot el lloc web en una carpeta

No us preocupeu pel fitxer app.yaml més tard. l’afegirem aviat

Podeu pensar en la carpeta www com el que es lliura quan els visitants van a mywebsite.com.

PAS 2: implementeu-lo a Google App Engine

Ara que teniu el vostre lloc web i esteu a punt per publicar-lo a Google App Engine.

Inicieu la sessió a la consola de Google Cloud Platform

Aneu a https://console.cloud.google.com i inicieu la sessió amb el vostre compte de Google.

Crea un projecte

Seleccioneu l'opció "Crea un projecte" al menú i trieu un nom de projecte adequat que correspongui al vostre nom de domini. Si el vostre domini és matswebsite.com, nomeneu el lloc web de Project Mats. Es generarà automàticament un identificador de projecte, però podeu fer clic a l'enllaç de petita edició per canviar-lo i triar el vostre. Utilitzarem aquest identificador de projecte més endavant perquè el pugueu recordar bé. L'identificador del projecte ha de ser únic a nivell mundial. Per això, fer servir el vostre domini no és una mala idea; matswebsitecom.

Feu clic a CREA.

Creeu un projecte a Google Cloud Platform

Al cap de poc temps, es crearà el projecte i podrem activar Google App Engine.

Accediu al menú (feu clic a les tres línies de l'extrem superior esquerre) i seleccioneu App Engine per accedir a la consola d'App Engine.

Instal·leu l'SDK de Google Cloud

Visiteu https://cloud.google.com/sdk/ i baixeu l'SDK de Google Cloud per al vostre ordinador. L'SDK conté eines de línia d'ordres que podem utilitzar per desplegar el vostre lloc web.

Afegiu un fitxer app.yaml

Per dir a Google App Engine com servir el nostre lloc web, heu de crear un petit fitxer de configuració al directori arrel del nostre lloc web.

Enganxeu el següent al fitxer nou:

Durada: go api_version: go1
Gestor: - URL: / static_files: www / index.html upload: www / index.html - URL: /(.*) static_files: www / \ 1 Upload: www /(.*)

Els espais són importants als fitxers YAML. Assegureu-vos que hi hagi dos espais abans que els fitxers static_files i les línies de càrrega.

Podeu obtenir més informació sobre el fitxer app.yaml llegint la documentació. De moment, n'hi ha prou amb saber que servim estàticament el contingut des de la carpeta "www".

Afegiu un fitxer main.go

Per tal que el nostre projecte sigui un projecte Go vàlid, hem d’afegir un codi Go. No us preocupeu, us donaré la quantitat mínima absoluta de codi que necessiteu.

Creeu un fitxer anomenat main.go a la vostra carpeta (al costat del fitxer app.yaml) i enganxeu el codi següent:

Aplicació del paquet
func main () {}
Si mai no heu sentit a parlar de Go, us recomano que feu una ullada. És un llenguatge divertit i extremadament útil: uniu-vos a la gira.

Proporcionar

En primer lloc, utilitzeu l'ordre gcloud (de l'SDK de Google Cloud) en un intèrpret d'ordres del terminal per iniciar la sessió:

Inici de sessió d'autenticació gcloud
Si us quedeu atrapats aquí, consulteu la guia d’inici ràpid per obtenir ajuda.

Això obrirà un navegador web i us demanarà que inicieu la sessió al vostre compte de Google. Un cop fet això, el terminal indicarà que l'inici de sessió ha estat correcte.

Ara canvieu a la carpeta del vostre lloc web perquè la carpeta www aparegui a la llista per ls o dir.

Ara configureu el nom del projecte:

gcloud config set project PROJECT_ID

Substituïu PROJECT_ID per l'identificador de projecte que vau configurar quan vau crear el projecte a Google Cloud Console.

Ara comencem a implementar:

Desplegueu l'aplicació gcloud

Si l'SDK de Google Cloud requereix components addicionals (he requerit App-Engine-Go), se us demanarà que els instal·leu. Respon que sí a cada pregunta.

Finalment, se us demanarà si voleu desplegar l’aplicació; premeu Y i torneu-la a introduir.

Al cap d’un temps, l’aplicació es desplegarà i estarà disponible al domini appspot.com:

https://PROJECT_ID.appspot.com
Recordeu que heu de substituir PROJECT_ID pel vostre identificador de projecte.

PAS 3: configureu el vostre nom de domini

Seleccioneu i compreu un domini

Per tal que els visitants puguin veure el vostre lloc web, han de visitar un nom de domini. Tot i que podeu fer servir appspot.com proporcionat gratuïtament per Google App Engine, és molt més convenient tenir-ne de vostres.

Visiteu namecheap.com o cerqueu una empresa que ven noms de domini i compreu el vostre domini. Heu de poder canviar els servidors de noms, així que assegureu-vos que l’empresa l’admet (ho fa Namecheap).

Configureu CloudFlare

Aneu a CloudFlare.com i creeu un compte. A continuació, seleccioneu Afegeix lloc a la barra de menú de la part superior. Introduïu el vostre domini i feu clic a "Inicia l'exploració". Feu clic a Continua la configuració i seguiu els passos restants. A continuació, feu clic a Següent fins que arribeu a la pàgina Tria un pla CloudFlare.

Seleccioneu el pla GRATU andT i feu clic a Següent.

El pla de llocs web gratuït té tot el que necessitem: CloudFlare és força generós.

A continuació, se us demanarà que actualitzeu els vostres servidors de noms. Torneu al lloc on heu comprat el vostre nom de domini i introduïu els valors proporcionats per CloudFlare.

Per reenviar el trànsit a través de CloudFlare, cal actualitzar els servidors de noms. CloudFlare indica quins valors s’han d’utilitzar.

A Namecheap, obriu el tauler i feu clic a GESTIONA al costat del vostre domini. A continuació, cerqueu NAMESERVERS i seleccioneu DNS personalitzat. Copieu els servidors de noms i enganxeu-los als dos camps proporcionats:

Amb Namecheap podeu especificar els vostres propis servidors de noms. Recordeu fer clic a la petita marca de verificació verda per confirmar els canvis.

Quan hàgiu fet això, feu clic a Següent a CloudFlare i espereu. Els canvis poden trigar un temps a fer-se efectius. Així que preneu una tassa de te o alguna altra beguda adequada (o inadequada).

Finalment es torna verd (es pot actualitzar amb la freqüència que vulgui):

Un cop s'hagin actualitzat els servidors de noms, el vostre lloc estarà actiu a CloudFlare.

Feu que App Engine conegui el vostre domini

A Google Cloud Console, torneu a accedir a la consola App Engine i seleccioneu Configuració.

A la pestanya Dominis personalitzats, seleccioneu Afegeix un domini personalitzat.

Heu de verificar que sou el propietari del domini abans de poder sol·licitar a Google App Engine que publiqui contingut per a aquest domini. Per fer-ho, seleccioneu l'opció Comprova domini nou de la llista i introduïu-lo al camp proporcionat.

Si feu clic a "Confirma", s'iniciarà un nou procés en el qual podem demostrar que som el propietari d'aquest nom de domini i controlar-lo. A la nova finestra, seleccioneu el nom del vostre proveïdor (amb sort "Namecheap", ja que és fàcil) i tingueu en compte que se us demanarà que afegiu un registre DNS TXT:

Per demostrar a Google que controlem un nom de domini, hem d'afegir un codi DNS especial que proporcionin.

No us preocupeu, no és tan aterrador com sembla. Seleccioneu el text estrany al quadre, copieu-lo i torneu a CloudFlare. A continuació, s’afegeix el valor.

Assegureu-vos que el vostre domini estigui seleccionat a CloudFlare i seleccioneu la pestanya DNS.

A la part superior de la taula hi ha un formulari en què podem inserir el registre que vol Google:

Al camp Nom, introduïu un signe @ i, per al contingut, enganxeu el valor que Google ens ha donat. Feu clic a Afegeix un registre.

S'afegeix a la llista de registres DNS.

Ara torneu a la plataforma Google Cloud i feu clic a Verifica.

Això pot trigar una mica. Així que no us molesteu si no funciona de seguida. Sempre que hagueu introduït el valor correcte a CloudFlare, es pot actualitzar. En realitat, estan esperant que els servidors DNS es propaguen, cosa que sembla més màgic del que és. Tanmateix, en qualsevol cas, els servidors DNS de Google són molt ràpids si no voleu esperar.

Finalment, obtindreu la pàgina d’èxit a la part superior.

A Google Cloud Console> App Engine> Configuració> Dominis personalitzats, feu clic a Actualitza dominis i tingueu en compte que ara el vostre domini és una opció a la llista desplegable. Seleccioneu-lo i feu clic a Següent i després a Desa associacions.

Al cap d’un moment, torneu a fer clic a Següent i observeu que Google App Engine ara proporciona una nova configuració de DNS. Hem d’assegurar-nos que la nostra pàgina de CloudFlare DNS tingui els mateixos valors.

Google vol que enganxem cadascun d’aquests valors a la consola CloudFlare. Una petita còpia i enganxa no farà mal a ningú, oi?

A CloudFlare, premeu la X al costat de tots els registres DNS, excepte el registre TXT que hem afegit (deixem aquest registre perquè Google sàpiga que sempre controlem aquest domini).

Ara creeu un registre a CloudFlare per a cada article de la pàgina de Google. Això és el més difícil que hem de fer. En primer lloc, llegiu els consells següents:

  • Introduïu el tipus a la llista desplegable TXT (necessiteu A, AAAA i CNAME).
  • A Google App Engine, el camp Àlies és el nom de Cloudflare. Si no hi ha cap àlies, torneu a utilitzar el signe @. (També podeu deixar el camp en blanc perquè CloudFlare sàpiga el que voleu dir, o us demanarà que el configureu).
  • Deixeu el TTL com a TTL automàtic
  • CloudFlare sap el que fa i és difícil equivocar-se. Per tant, copieu i enganxeu cada valor i confieu en CloudFlare per fer-vos saber si cometeu errors
  • Vigileu els espais addicionals en copiar i enganxar. Això pot provocar un error de verificació, però és difícil de detectar

Al final quedarà així:

A Google App Engine, feu clic a Fet.

Doneu temps a Internet per posar-vos al dia

Perquè el vostre domini funcioni, Internet ha de mantenir-se al dia amb aquests canvis. Es diu que això pot trigar 24 hores. Tanmateix, si utilitzeu els servidors DNS de Google, normalment es fa molt ràpidament.

Mentre espereu, podeu habilitar l'emmagatzematge en memòria cau i HTTPS agressius a CloudFlare.

PAS 4: configureu la memòria cau i HTTPS

El truc per mantenir lliure l’allotjament estàtic, independentment del trànsit que obtingueu, és habilitar la memòria cau a CloudFlare.

Feu clic a la pestanya Regles de pàgina i, a continuació, feu clic a Crea una regla de pàgina.

Al camp de concordança d'URL, introduïu el vostre domini en el formulari següent: * .mywebsite.com / *: indica que la regla s'ha d'aplicar independentment del subdomini i del camí d'accés.

Seleccioneu el paràmetre TTL de la memòria cau de Edge i configureu el valor a un mes. Feu clic a Desa i desplega.

Si configureu Edge Cache TTL a un mes, al nostre lloc web de Google App Engine (en teoria) només s’accedirà un cop al mes. La resta del temps, CloudFlare's Edge CDN s'encarregarà d'això. Això és agressiu, per descomptat: podeu jugar amb la configuració per trobar els valors adequats.

Per fer que el nostre lloc sigui accessible mitjançant HTTPS, afegim una altra regla de pàgina:

Aquesta vegada, introduïu el valor de concordança d'URL: http: //*.mywebsite.com/*

Amb l'ajuda d'una regla de pàgina a CloudFlare, podem especificar que HTTPS sempre s'ha d'utilitzar per al nostre lloc web.

Seleccioneu Utilitza sempre HTTPS de la llista i feu clic a Desa i desplega.

Opcionalment, podeu afegir un URL de redirecció per assegurar-vos que tot el trànsit estigui dirigit a www.mywebsite.com o mywebsite.com.

Aquestes són les regles finals de pàgina per a honorablecode.com

Esborreu la memòria cau quan vulgueu

Sempre que feu canvis al vostre lloc web, aneu a la consola CloudFlare, aneu a la pestanya Memòria cau i seleccioneu Esborra-ho tot de la llista desplegable:

Les sol·licituds noves del vostre lloc web s’enviaran ara a Google App Engine i la versió més recent serà publicada (i emmagatzemada a la memòria cau per CloudFlare per a futures sol·licituds).

El vostre lloc web està en directe.

Un cop els servidors DNS es posin al dia, el vostre lloc web estàtic gratuït i segur estarà en línia.

Conclusió

Amb les opcions GRATU fromTES de Google App Engine i CloudFlare i una mica de màgia DNS, podem allotjar gratuïtament el nostre lloc web estàtic preparat per a la producció.

Ens va ser possible:

  • Configureu un projecte de Google App Engine
  • Implementar un lloc web al núvol
  • Obteniu el nostre propi nom de domini
  • Configureu el vostre propi nom de domini amb CloudFlare
  • Proveu la configuració de DNS per dirigir el domini al nostre lloc web
  • Configureu la memòria cau i HTTPS al domini per donar suport a una escala massiva

Bon treball.

Compra el meu llibre

En teoria, només t’he estalviat molts diners. Llavors, per què no dir gràcies gràcies a la compra del meu llibre? :)

Si voleu fer coses com en aquest article, us sorprendrà què pot fer Go. Al meu llibre, Go Programming Blueprints, construïm coses reals. Flexioneu els músculs del desenvolupador.

Obteniu la vostra còpia a https://www.packtpub.com/application-development/go-programming-blueprints-second-edition

A més, fes-me un tuit a @matryer si estàs atrapat i veuré si et puc ajudar.