CLOUD HACK: Kako pripraviti proizvodnjo BREZPLAČNO statično gostovanje spletnih strani

Ta članek vas bo vodil skozi vse, kar morate storiti, da pripravite gostovanje in izdelavo statičnega spletnega mesta.

Podprl bo noro količino prometa in vas nič ne stajal!

Skupaj se bomo lotili zapisov DNS in nekaterih drugih stvari na nizki ravni, vendar je lažje, kot se sliši - in popolnoma vredno.

Nisem mogel najti načina, kako pridobiti brezplačno ime domene, zato bi v duhu resnične preglednosti moral reči, da boste morali za to plačati.

Uvod

Z Googlom in CloudFlarejem bomo izvedli težko dviganje, zato bomo morali samo izdelati spletno mesto in vse nastaviti.

V tem članku bomo:

  • Nastavite projekt Google App Engine
  • Namestite spletno mesto v oblak
  • Pridobite si svoje ime domene
  • Z CloudFlare nastavite lastno ime domene
  • Pomerite se z nastavitvami DNS, da domeno usmerite na naše spletno mesto
  • Konfigurirajte predpomnjenje in HTTPS v domeni za podporo množičnega obsega

Sliši se težko, še posebej, če niste vajeni teh izrazov, vendar bomo skupaj korakali skozi vsak korak.

Prosimo, razmislite o tem, da bi to v družabnih omrežjih delili z drugimi, ki bi se lahko zdeli koristni, ali pa povezavo pošljite vsem, ki jih poznate, ki plačujejo za statično gostovanje spletnih strani.

Kaj je Google App Engine?

Google App Engine je Googlova storitev, ki vam omogoča izdelavo in gostovanje zapletenih spletnih aplikacij, ki delujejo v izjemno velikem obsegu. Lahko sodelujete s stotimi API-ji za reševanje vseh vrst tehničnih izzivov, kot so shranjevanje podatkov, zagon poizvedb, delo v čakalnih vrstah, zagotavljanje zmogljivosti za strojno učenje, pošiljanje e-pošte… o ja, in vročanje HTML in CSS.

Brezplačna kvota za Google App Engine pomeni, da lahko vaše spletno mesto prejme določeno količino prometa, preden ga morate začeti plačevati; toda pravzaprav ne bomo prišli nikamor blizu zahvaljujoč CloudFlare-ju.

Kaj je CloudFlare?

CloudFlare je precej težko opisati, vendar za naše namene lahko mislite, da je to čudovita (in brezplačna) zmogljivost predpomnjenja vsebine, kjer bodo strežniki CloudFlare shranili kopijo vaše spletne strani in jo neposredno postregli svojim obiskovalcem. Omeniti velja, da CloudFlare shranjuje veliko kopij vsebine na ključnih lokacijah po vsem svetu, tako da spletnim brskalnikom obiskovalcev ni treba segati zelo daleč v internet, da bi ga dobili.

Za spletna mesta, ki se ne spreminjajo pogosto, lahko nastavite predpomnilniške politike dokaj agresivno - tako da bo vaš Google App Engine projekt komaj prejel veliko zahtev. Če posodobite spletno mesto, boste morali počakati, da se predpomnilnik izteče, ali ga ročno očistite (pojasnil bom kasneje).

1. KORAK: Izdelajte svoje spletno mesto

Prva stvar, ki jo morate storiti, je izdelava vaše spletne strani. To storite s pomočjo ne glede na orodja, ki ste jih vajeni, cilj je, da na koncu dobite mapo, ki vsebuje celotno vaše spletno mesto. Ne more vsebovati nobene dinamične vsebine, zato so skripti CGI, .aspx strani, koda Ruby on Rails itd. Statična spletna mesta so običajno samo HTML, CSS, datoteke JavaScript, slike itd.

Prepričajte se, da ima stran index.html

Ko obiskovalci brez domene zadenejo vaše ime domene, bo prikazana stran index.html, zato se prepričajte, da obstaja.

Vse postavite v mapo www

Dodali bomo mapo, ki bo vsebovala naše statično spletno mesto, tako da bo struktura našega projekta izgledala tako:

Celotno spletno mesto postavite v mapo `www`

Ne skrbite za to datoteko app.yaml pozneje; kmalu ga bomo dodali

Mapo www si lahko zamislite kot tisto, kar bo postreženo, ko bodo obiskovalci obiskali spletno mesto mywebsite.com.

2. KORAK: Uvedite v Google App Engine

Zdaj imate svoje spletno mesto, čas je, da ga postavite v Google App Engine.

Prijavite se v konzolo Google Cloud Platform

Pojdite na https://console.cloud.google.com in se prijavite s svojim Google računom.

Ustvari projekt

V meniju izberite Ustvari projekt in izberite ustrezno ime projekta, ki odraža ime vaše domene. Če je vaša domena matswebsite.com, morda pokličite ta projekt Mats Website. Za vas bo samodejno ustvaril ID projekta, vendar lahko kliknete majhno povezavo Uredi, da jo spremenite in izberete svojo. Ta ID projekta bomo uporabili pozneje, zato si ga zapomnite in si ga preprosto in enostavno zapomnite. ID projekta mora biti globalno edinstven, zato uporaba vaše domene ni slaba ideja, npr. matswebsitecom.

Kliknite CREATE.

Ustvarjanje projekta na Googlovi platformi v oblaku

Kmalu bo projekt nastal in lahko omogočimo Google App Engine.

Odprite meni (kliknite tri vrstice v zgornjem levem kotu) in izberite App Engine za dostop do konzole App Engine.

Namestite Google SDK za oblak

Pojdite na https://cloud.google.com/sdk/ in prenesite SDK za Google Cloud v računalnik. SDK vsebuje orodja ukazne vrstice, s katerimi bomo lahko uporabili vaše spletno mesto.

Dodajte datoteko app.yaml

Da bi Google App Engine povedal, kako želimo, da se naše spletno mesto uvede, moramo ustvariti majhno konfiguracijsko datoteko v korenski mapi našega spletnega mesta.

V novo datoteko vstavite naslednje:

trajanje: pojdi
api_version: go1
obdelovalci:
- URL: /
  static_files: www / index.html
  upload: www / index.html
- URL: /(.*)
  static_files: www / \ 1
  upload: www /(.*)

V datotekah YAML je beli prostor pomemben, zato se prepričajte, da sta pred static_files in naložite vrstice dva presledka.

Več o datoteki app.yaml lahko izveste tako, da preberete dokumentacijo, za zdaj je dovolj, da vemo, da vsebino statično prikazujemo iz mape www.

Dodajte datoteko main.go

Da bi bil naš projekt veljaven projekt Go, moramo dodati nekaj Go kode. Brez skrbi, dal vam bom minimalno potrebno količino kode.

Ustvarite datoteko v mapi (poleg datoteke app.yaml), imenovano main.go, in vstavite naslednjo kodo:

paketna aplikacija
func main () {}
Če še niste slišali Go, močno priporočam, da si ga ogledate - to je zabaven in nadvse uporaben jezik: Zakaj ne bi šli na turnejo?

Razmestitev

V terminalski lupini za prijavo najprej uporabite ukaz gcloud (iz Google Cloud SDK):

prijava v gcloud auth
Če se tu zataknete, poiščite pomoč.

Odpre se spletni brskalnik in od vas zahteva, da se prijavite v Google Račun. Ko konča, bo terminal pokazal, da je bila prijava uspešna.

Zdaj cd v mapo vašega spletnega mesta, tako da bo ls ali dir na seznamu prikazal mapo www.

Zdaj nastavite ime projekta:

projekt gcloud config set PROJECT_ID

Zamenjajte PROJECT_ID z ID-jem projekta, ki ste ga nastavili med ustvarjanjem projekta v Google Cloud Console.

Zdaj bomo začeli uvajanje:

uvajanje aplikacije gcloud

Če Google Cloud SDK potrebuje kakršne koli dodatne komponente (zame je potreboval zagon aplikacij), boste pozvani, da jih namestite. Za vsako vprašanje odgovorite z Y (za da).

Na koncu vas vpraša, ali želite aplikacijo namestiti - pritisnite Y in znova vnesite.

Čez nekaj časa bo aplikacija nameščena in dostopna prek domene appspot.com:

https://PROJECT_ID.appspot.com
Ne pozabite zamenjati PROJECT_ID z ID-jem projekta.

3. KORAK: Nastavite ime svoje domene

Izberite in kupite domeno

Da bodo obiskovalci lahko videli vaše spletno mesto, bodo morali obiskati ime domene - in medtem ko lahko uporabljate appspot.com, ki vam ga brezplačno daje Google App Engine, je veliko lepše imeti svoje.

Pojdite na imecheap.com ali poiščite podjetje, ki prodaja imena domen in kupuje vašo domeno. Spremeniti boste morali strežnike imen, zato se prepričajte, da to podjetje podpira (Namecheap to počne).

Nastavite CloudFlare

Pojdite na CloudFlare.com in ustvarite račun. Nato v menijski vrstici na vrhu izberite Dodaj spletno mesto. Vnesite svojo domeno in kliknite Začni skeniranje. Ko končate s čarovništvom, kliknite Nadaljuj namestitev in sledite preostalim korakom, nato kliknite Nadaljuj, kjer lahko, dokler ne odprete strani Izberite načrt CloudFlare.

Izberite BREZPLAČEN načrt in kliknite Nadaljuj.

Načrt brezplačnih spletnih strani vsebuje vse, kar potrebujemo - CloudFlare so precej radodarni.

Nato boste morali posodobiti strežnike imen, zato se vrnite do mesta, kjer ste kupili ime domene in vnesite vrednosti, ki vam jih je dodelil CloudFlare.

Za usmerjanje prometa skozi CloudFlare moramo posodobiti strežnike imen. CloudFlare vam pove, katere vrednosti morate uporabiti.

V Namecheap-u greste na nadzorno ploščo in poleg svoje domene kliknete MANAGE. Nato poiščite NAMESERVERS in izberite DNS po meri. Kopirajte in prilepite strežnike imen v dva priložena polja:

Namecheap vam omogoča, da določite svoje lastne strežnike imen. Ne pozabite, da kliknete majhno zeleno kljukico, da potrdite spremembe.

Ko to storite, v oblaku CloudFlare kliknite Nadaljuj in počakajte. Kar nekaj časa lahko traja, da spremembe začnejo veljati, zato pojdite po skodelico čaja ali druge ustrezne (ali neprimerne) pijače.

Sčasoma bo zelena (osvežite jo lahko tolikokrat, kot želite):

Ko bodo strežniki imen posodobljeni, bo vaše spletno mesto v storitvi CloudFlare v živo.

Povejte App Engineu o svoji domeni

Nazaj v konzolo Google Cloud, znova odprite konzolo App Engine in izberite Nastavitve.

Na zavihku Domene po meri izberite Dodaj domeno po meri.

Preden lahko Google App Engine zahteva, da mu pošlje vsebino, preverite, ali ste lastnik domene - to storite tako, da na seznamu izberete Preveri novo domeno in jo vpišete v priloženo polje.

S klikom na Preveri sproži nov postopek, s katerim lahko dokažemo, da imamo ime domene in jo nadzorujemo. V novem oknu izberite ime ponudnika (upajmo, da je ime imetnika - ker je enostavno) in opazite, da boste morali dodati zapis TXT DNS:

Če želimo Googlu dokazati, da nadziramo ime domene, moramo dodati posebno DNS kodo, ki jo posredujejo.

Brez skrbi - to ni tako strašljivo, kot se zdi. V polju polju izberite čudno besedilo, ga kopirajte in se vrnite v CloudFlare in dodali bomo vrednost.

Prepričajte se, da je vaša domena izbrana v CloudFlare in izberite zavihek DNS.

Na vrhu tabele je obrazec, kamor lahko dodamo zapis, ki ga želi Google:

V polje Ime vnesite znak @ in za Vsebino prilepite vrednost, ki nam jo je dal Google. Kliknite Dodaj zapis.

Dodana bo na seznam zapisov DNS.

Zdaj se vrnite na Googlovo platformo v oblaku in kliknite Preveri.

To lahko traja nekaj časa - zato se ne razburjajte, če ne deluje takoj. Dokler ste pravilno prilepili vrednost v CloudFlare, se bo sčasoma posodobila. Pravzaprav čakate, da se DNS strežniki razmnožijo, kar se sliši bolj čarobno, kot je - a tako ali tako, če ne želite čakati, razmislite o uporabi Googlovih javnih DNS strežnikov, so zelo hitri.

Končno boste dobili zgornjo stran o uspehu.

Nazaj v Google Cloud Console> App Engine> Settings> Domene po meri kliknite Osveži domene in opazite, da je vaša domena zdaj možnost na spustnem seznamu. Izberite ga in kliknite Nadaljuj, nato pa kliknite Shrani preslikave.

Čez trenutek ponovno kliknite Nadaljuj in opazite, da nam Google App Engine zdaj daje nove nastavitve DNS. Poskrbeti moramo, da ima naša stran DNS CloudFlare enake vrednosti.

Google želi, da vsako od teh vrednosti postavimo v konzolo CloudFlare - kopija in lepljenje nikoli nikomur ne škodi, kajne?

Nazaj v CloudFlare pritisnite X poleg vseh zapisov DNS razen TXT, ki smo ga dodali (to bomo pustili tam, da Google ve, da to domeno vedno nadzorujemo).

Zdaj za vsak element na Googlovi strani ustvarite zapis v CloudFlare. To je najtežje, kar moramo storiti, zato najprej preberite te nasvete:

  • Na spustnem meniju TXT določite vrsto (potrebovali boste A, AAAA in CNAME)
  • V programu Google App Engine je polje Alias ​​ime v oblaku Cloudflare. Če ni vzdevka, znova uporabite znak @. (Lahko ga pustite tudi prazno in CloudFlare bo vedel, kaj mislite - ali pa vas bo pozval, da nastavite na @)
  • TTL pustite kot samodejni TTL
  • CloudFlare ve, kaj počne, in težko je narediti napako - zato kopirajte in prilepite vsako vrednost in zaupajte CloudFlare, da vam bo povedal, ali se boste zapletli
  • Pri kopiranju in lepljenju bodite pozorni na dodaten beli prostor, lahko pride do napake pri preverjanju veljavnosti, vendar je težko videti

Na koncu bo videti tako:

Nazaj v Google App Engine kliknite Končano.

Dajte internetu čas, da nadoknadite

Da bi vaša domena delovala, mora internet nadoknaditi te spremembe. Pravijo, da to lahko traja 24 ur, vendar če uporabljate Googlove DNS strežnike, je to ponavadi takoj.

Medtem ko čakate, lahko v CloudFlare omogočite agresivno predpomnjenje in HTTPS.

4. KORAK: Nastavitveno predvajanje in HTTPS

Trik, da ohranite statično gostovanje brezplačno, ne glede na to, koliko prometa dobite, je omogočiti predpomnjenje v CloudFlare.

Kliknite jeziček Pravila strani in kliknite Ustvari pravilo v strani.

V polje za ujemanje URL vnesite svojo domeno v obliki: * .mywebsite.com / * - kar pomeni, da mora pravilo veljati ne glede na poddomene in ne glede na pot.

V nastavitvi izberite Edge Cache TTL in nastavite vrednost na mesec. Kliknite Shrani in uporabi.

Če nastavite Edge Cache TTL na mesec, bo (v teoriji) naše spletno mesto Google App Engine samo enkrat na mesec. Preostali čas ga bo stregel robni CDN CloudFlare. Očitno je, da je to agresivno - z nastavitvami lahko poiščete prave vrednosti za vas.

Da bo naše spletno mesto dostopno prek HTTPS, bomo dodali še eno pravilo strani:

Tokrat vnesite vrednost ujemanja URL-ja kot: http: //*.mywebsite.com/*

S pravilom strani v CloudFlareju lahko rečemo, da za svoje spletno mesto vedno uporablja HTTPS.

Na seznamu izberite Vedno uporabi HTTPS in kliknite Shrani in uporabi.

Izbirno lahko dodate URL za posredovanje, da zagotovite, da se ves promet preusmeri na www.mywebsite.com ali mywebsite.com.

To so zadnja Pravila strani za honorablecode.com

Kadar koli želite, pospravite predpomnilnik

Kadar koli spremenite svoje spletno mesto, se pomaknite v konzolo CloudFlare, odprite zavihek Caching in na spustnem meniju izberite Purge Everything:

Nove zahteve za vaše spletno mesto bodo zdaj prešle v Google App Engine in vročena bo zadnja različica (ki jo bo CloudFlare shranil za prihodnje zahteve).

Vaše spletno mesto je v živo!

Ko se bodo strežniki DNS ustavili, bo vaše varno brezplačno statično spletno mesto na spletu.

Zaključek

Samo z uporabo BREZPLAČNIH možnosti Google App Engine in CloudFlare in malenkosti čarov DNS lahko brezplačno gostimo statično spletno mesto, pripravljeno za izdelavo.

Uspeli smo:

  • Nastavite projekt Google App Engine
  • Namestite spletno mesto v oblak
  • Pridobite si svoje ime domene
  • Z CloudFlare nastavite lastno ime domene
  • Pomerite se z nastavitvami DNS, da domeno usmerite na naše spletno mesto
  • Konfigurirajte predpomnjenje in HTTPS v domeni za podporo množičnega obsega

Dobro opravljeno.

Kupi mojo knjigo

Teoretično sem vam prihranil veliko denarja, zakaj ne bi se zahvalili z nakupom moje knjige. :)

Če vam je všeč, da se stvari počnejo kot v tem članku, vam bo všeč, kaj lahko naredite z Go. V moji knjigi Načrtovanje programskih načrtov gradimo resnične stvari. Razgibajte svoje dev mišice.

Pridobite svojo kopijo s https://www.packtpub.com/application-development/go-programming-blueprints-second-edition

Tudi tvitnite mi @matryer, če se zataknete, in videla bom, če lahko pomagam.