ZAVRŠITE HACK: Kako pripremiti BESPLATNO statično hosting web stranica

Ovaj članak će vas provesti kroz sve što trebate učiniti kako biste spremili statičko web mjesto i proizvodnju.

Podržavat će bezumnu količinu prometa i neće vas koštati ništa!

Zajedno ćemo se družiti s DNS zapisima i nekim drugim stvarima niske razine, ali to je lakše nego što zvuči - i potpuno vrijedi.

Nisam mogao smisliti način da dobijem ime besplatne domene, pa bih u duhu istinske transparentnosti trebao reći da ćete to morati platiti.

Uvod

Nabavit ćemo Google i CloudFlare da nam podignu težak posao, stoga ćemo tek trebati izgraditi web stranicu i sve postaviti.

U ovom ćemo članku:

  • Postavljanje projekta Google App Engine
  • Instalirajte web mjesto u oblak
  • Nabavite naše ime domene
  • Postavljanje vlastitog imena domene pomoću CloudFlare
  • Pomičite se s postavkama DNS-a da biste usmjerili domenu na našu web stranicu
  • Konfigurirajte predmemoriranje i HTTPS na domeni za podršku ogromne razmjere

Zvuči teško, pogotovo ako niste navikli na ove izraze, ali zajedno ćemo proći kroz svaki korak.

Razmislite o tome da to podijelite na društvenim mrežama za druge koji bi mogli biti korisni ili pošaljite vezu svima koje znate tko plaća statički hosting web stranica.

Što je Google App Engine?

Google App Engine je Googleova usluga koja omogućuje izradu i hostiranje složenih web aplikacija koje se pokreću u iznimno visokim razmjerima. Možete komunicirati sa stotinama API-ja za rješavanje svih vrsta tehničkih izazova kao što su pohranjivanje podataka, pokretanje upita, rad u čekanju, pružanje mogućnosti strojnog učenja, slanje e-pošte… oh da, i posluživanje HTML-a i CSS-a.

Besplatna kvota na Google App Engineu znači da vaša web stranica može primiti određenu količinu prometa prije nego što počnete plaćati za nju; ali zapravo nećemo ni blizu tome pristupiti zahvaljujući CloudFlareu.

Što je CloudFlare?

CloudFlare je prilično teško opisati, ali u naše svrhe to možete zamisliti kao fenomenalnu (i besplatnu) mogućnost predmemoriranja sadržaja gdje CloudFlare poslužitelji drže kopiju vaše web stranice i poslužuju je izravno posjetiteljima. Vrijedi napomenuti da CloudFlare pohranjuje mnoge kopije sadržaja na ključnim mjestima širom svijeta, tako da web-preglednici posjetitelja ne moraju posezati jako puno o Internetu da bi ga dobili.

Na web-lokacijama koje se ne mijenjaju često možete postaviti pravila predmemoriranja prilično agresivno - tako da će vaš projekt Google App Engine na kraju teško primiti mnogo zahtjeva. Ako ažurirate web mjesto, morat ćete samo pričekati da istekne predmemorija ili je ručno očistite (objasnit ću kasnije).

KORAK 1: Izradite svoju web stranicu

Prvo što trebate učiniti je izgraditi vaše web mjesto. Učinite to koristeći sve alate kojima ste navikli, cilj je pronaći mapu koja sadrži cijelu vašu web lokaciju. Ne može sadržavati nikakav dinamični sadržaj, pa su CGI skripte, .aspx stranice, kod Ruby on Rails itd. Sve izvan stola. Statičke web stranice obično su samo HTML, CSS, JavaScript datoteke, slike itd.

Provjerite ima li index.html stranicu

Kada posjetitelji pogode vaše ime domene bez puta, poslužit će se stranica index.html, pa se uvjerite da postoji.

Sve stavite u www mapu

Dodaćemo mapu koja sadrži našu statičku web stranicu tako da struktura našeg projekta izgleda ovako:

Cijelu web stranicu stavite u mapu `www`

Ne brinite se kasnije za tu datoteku app.yaml; brzo ćemo je dodati

Možete smatrati da je www mapa ono što će se poslužiti kada vaši posjetitelji odu na mywebsite.com.

KORAK 2: Uvedite u Google App Engine

Sada imate svoju web lokaciju, vrijeme je da je implementirate u Google App Engine.

Prijavite se u konzolu Google Cloud Platform

Prijeđite na https://console.cloud.google.com i prijavite se putem svog Google računa.

Kreirajte projekt

Na izborniku odaberite Stvori projekt i odaberite odgovarajući naziv projekta koji odražava naziv vaše domene. Dakle, ako je vaša domena matswebsite.com, možda pozovite ovaj projekt Mats Web stranica. Automatski će generirati ID projekta za vas, ali možete kliknuti malu vezu Uredi da biste je promijenili i odabrali vlastiti. Kasnije ćemo upotrijebiti ovaj ID projekta, tako da ga bude lijepo i lako zapamtiti. ID projekta mora biti globalno jedinstven, zbog čega upotreba vaše domene nije loša ideja, npr. matswebsitecom.

Kliknite CREATE.

Izrada projekta na Google Cloud Platformu

Nakon kraćeg vremena projekt će se stvoriti i možemo omogućiti Google App Engine.

Pristupite izborniku (kliknite tri retka u gornjem lijevom kutu) i odaberite App Engine za pristup konzoli App Engine.

Instalirajte Google SDK SDK

Prijeđite na https://cloud.google.com/sdk/ i preuzmite Google Cloud SDK za svoje računalo. SDK sadrži alate naredbenog retka pomoću kojih ćemo upotrebljavati vašu web lokaciju.

Dodajte app.yaml datoteku

Kako bismo mogli reći Google App Engineu kako želimo da se naša web lokacija implementira, moramo stvoriti malu konfiguracijsku datoteku u korijenskoj mapi naše web stranice.

U novu datoteku umetnite sljedeće:

vrijeme izvođenja: ići
api_version: go1
rukuju:
- url: /
  static_files: www / index.html
  upload: www / index.html
- url: /(.*)
  static_files: www / \ 1
  upload: www /(.*)

U YAML datotekama razmak je važan, pa pripazite da postoje dva mjesta ispred static_filesa i redaka za prijenos.

Možete saznati više o datoteci app.yaml čitajući dokumentaciju, a za sada je dovoljno znati da statistički poslužujemo sadržaj iz www mape.

Dodajte datoteku main.go

Kako bi naš projekt bio valjan Go projekt, moramo dodati neki Go kod. Ne brinite, dat ću vam apsolutno najmanju potrebnu količinu koda.

Napravite datoteku u svojoj mapi (pored datoteke app.yaml) pod nazivom main.go i umetnite sljedeći kôd:

aplikacija za paket
func main () {}
Ako niste čuli za uslugu Go, toplo vam preporučam da je pogledate - to je zabavan i izuzetno koristan jezik: Zašto ne krenite na turneju?

razviti

U terminalnoj ljusci prvo se prijavite pomoću gcloud naredbe (iz Google Cloud SDK-a):

gcloud auth prijava
Ako vas ovdje zaglavi, potražite pomoć u vodiču za brzo pokretanje.

Ovo će otvoriti web preglednik i tražiti da se prijavite na svoj Google račun. Kad to učini, terminal će naznačiti da je prijava bila uspješna.

Sada cd u mapu vaše web stranice tako da se radi ls ili dir prikazuje mapa www na popisu.

Sada postavite naziv projekta:

projekt gcloud config set PROJECT_ID

Zamijenite PROJECT_ID ID-om projekta koji ste postavili prilikom izrade projekta u Google Cloud Console.

Sada ćemo započeti implementaciju:

gcloud app implementacija

Ako Google Cloud SDK treba bilo kakvih dodatnih komponenti (meni je trebala aplikacija-engine-go), od vas će se zatražiti da ih instalirate. Odgovorite Y (za da) na svako pitanje.

Na kraju će vas pitati želite li implementirati aplikaciju - pritisnite Y i ponovno uđite.

Nakon nekog vremena aplikacija će biti raspoređena i dostupna putem domene appspot.com:

https://PROJECT_ID.appspot.com
Ne zaboravite zamijeniti PROJECT_ID svojim ID-om projekta.

3. KORAK: Postavljanje vašeg domena

Odaberite i kupite domenu

Da bi posjetitelji vidjeli vašu web lokaciju, oni će morati posjetiti naziv domene - a dok biste mogli upotrebljavati appspot.com koji vam besplatno daje Google App Engine, puno je ljepše imati svoje.

Prijeđite na imecheap.com ili potražite tvrtku koja prodaje imena domena i kupuje vašu domenu. Trebat ćete biti u mogućnosti promijeniti poslužitelje imena, pa se pobrinite da ih kompanija podržava (Namecheap to radi).

Postavljanje CloudFlare

Idite na CloudFlare.com i otvorite račun. Zatim odaberite Dodaj web mjesto na traci izbornika na vrhu. Unesite svoju domenu i kliknite Početak skeniranja. Nakon što je učinio od bog-zna-što magija, kliknite Nastavi postavljanje i slijedite preostale korake, a zatim kliknite Nastavi tamo gdje možete dok ne dođete do stranice Select CloudFlare plan.

Odaberite BESPLATNI plan i kliknite Nastavi.

Plan besplatnih web stranica sadrži sve što nam treba - CloudFlare su prilično velikodušni.

Od vas će se tražiti da ažurirate svoje poslužitelje imena, pa se vratite tamo gdje ste kupili ime vaše domene i unesite vrijednosti koje vam je dao CloudFlare.

Da bismo usmjerili promet kroz CloudFlare, moramo ažurirati servere imena. CloudFlare vam govori koje vrijednosti trebate koristiti.

U programu Namecheap idete na nadzornu ploču i kliknite MANAGE pored svoje domene. Zatim potražite NAMESERVERS i odaberite Custom DNS. Kopirajte i zalijepite poslužitelje imena u dva priložena okvira:

Namecheap vam omogućuje da odredite svoje poslužitelje imena. Ne zaboravite da kliknete malu zelenu kvačicu za potvrdu promjena.

Kada to učinite, kliknite Nastavi u CloudFlare-u i pričekajte. Može proći neko vrijeme dok promjene nastupe na snazi, pa pođite po šalicu čaja ili drugog odgovarajućeg (ili neprikladnog) napitka.

Na kraju će pozeleniti (možete ga osvježiti koliko god puta želite):

Nakon što se poslužitelji imena ažuriraju, vaša će web lokacija biti aktivna u CloudFlare-u.

Obavijestite App Engine o svojoj domeni

Povratak na Google Cloud Console ponovo pristupite konzoli App Engine i odaberite Postavke.

Na kartici Prilagođene domene odaberite Dodaj prilagođenu domenu.

Morat ćete potvrditi da li ste vlasnik domene prije nego što možete tražiti od Google App Engine-a da joj poslužuje sadržaj - to učinite odabirom potvrde nove domene s popisa i unošenjem u navedeni okvir.

Klikom na Provjeri pokrenut će se novi postupak u kojem možemo dokazati da posjedujemo i kontroliramo to ime domene. U novom prozoru odaberite ime vašeg davatelja usluge (nadamo se da je imenjak - budući da je to lako) i primijetite da se od vas traži da dodate TXT DNS zapis:

Da bismo Googleu dokazali da kontroliramo ime domene, moramo dodati poseban DNS kôd koji oni daju.

Ne brinite - ovo nije tako zastrašujuće kao što se čini. Odaberite čudni tekst unutar okvira, kopirajte ga i vratite se na CloudFlare, a mi ćemo dodati vrijednost.

Provjerite je li vaša domena odabrana u CloudFlare-u i odaberite karticu DNS.

Na vrhu tablice nalazi se obrazac u koji možemo dodati zapis koji Google želi:

U polje Ime unesite znak @, a za sadržaj zalijepite vrijednost koju nam je dao Google. Kliknite Dodaj zapis.

Ona će biti dodana na popis DNS zapisa.

Sada se vratite na Google Cloud Platform i kliknite potvrdi.

To bi moglo potrajati neko vrijeme, zato se nemojte uzrujati ako to odmah ne uspije. Sve dok ste zalijepili ispravnu vrijednost u CloudFlare, ona će se s vremenom ažurirati. Zapravo čekate da se DNS poslužitelji šire, što zvuči čarobnije nego što jest - ali u bilo kojem slučaju, ako ne želite čekati, razmislite o korištenju Googleovih javnih DNS poslužitelja, oni su jako brzi.

Na kraju, gore ćete dobiti stranicu s uspjehom.

Natrag u Google Cloud Console> App Engine> Postavke> Prilagođene domene, kliknite Osvježi domene i primijetite da je vaša domena sada opcija na padajućem popisu. Odaberite ga i kliknite Nastavi, a zatim kliknite Spremi preslike.

Nakon nekoliko trenutaka ponovo kliknite Nastavi i primjetite da nam Google App Engine sada daje nove DNS postavke. Moramo biti sigurni da naša CloudFlare DNS stranica ima iste vrijednosti.

Google želi da svaku od tih vrijednosti stavimo u CloudFlare konzolu - malo kopiranja i lijepljenja nikada nikome ne škodi, zar ne?

Natrag u CloudFlareu pritisnite X pored svih DNS zapisa osim TXT-a koji smo dodali (ostavićemo ga tako da Google zna da uvijek kontroliramo tu domenu).

Sada za svaku stavku na Google stranici stvorite zapis u CloudFlareu. To je najteže što moramo učiniti, pa prvo pročitajte ove savjete:

  • Na TXT padajućem izborniku određujete vrstu (trebat će vam A, AAAA i CNAME)
  • U Google App Engine-u polje Alias ​​je Ime u Cloudflareu. Ako nema aliasa, ponovo upotrijebite znak @. (Možete ga ostaviti i praznim. CloudFlare će znati na što mislite - ili će vas zatražiti da postavite na @)
  • Ostavite TTL kao Automatski TTL
  • CloudFlare zna što radi, a teško je pogriješiti - zato kopirajte i zalijepite svaku vrijednost i vjerujte CloudFlareu da vam kaže da li zabrljate
  • Pazite na dodatni bjeline prilikom kopiranja i lijepljenja, što bi moglo uzrokovati pogrešku prilikom provjere valjanosti, ali to je teško vidjeti

Završit će ovako:

Natrag u Google App Engine, kliknite Gotovo.

Dajte internetu vremena da se sustigne

Da bi vaša domena radila, Internet treba sustići te promjene. Kažu da to može potrajati 24 sata, ali ako koristite Googleove DNS poslužitelje, obično je to odmah.

Dok čekate, možete omogućiti agresivno predmemoriranje i HTTPS na CloudFlareu.

KORAK 4: Podešavanje predmemoriranja i HTTPS

Trik za zadržavanje besplatnog statičkog hostinga, bez obzira na promet koji ste dobili, je omogućavanje keširanja u CloudFlare-u.

Kliknite karticu Pravila stranice i kliknite Stvori pravilo pravila.

U okvir za podudaranje URL-ova unesite vašu domenu u oblik: * .mywebsite.com / * - što znači da se pravilo treba primjenjivati ​​bez obzira na poddomene i bez obzira na put.

U postavci odaberite Edge Cache TTL i postavite vrijednost na mjesec dana. Kliknite Spremi i instaliraj.

Ako postavite Edge Cache TTL na mjesec dana (u teoriji) uzrokuje da naša web stranica Google App Engine bude hitna samo jednom mjesečno. Ostalo će vrijeme poslužiti CloudFlare-ov CDN. Očito je da je to agresivno - možete se igrati s postavkama da biste pronašli prave vrijednosti za vas.

Da bi naša web lokacija postala dostupna putem HTTPS-a, dodaćemo još jedno pravilo na stranici:

Ovoga puta stavite vrijednost podudaranja URL-a kao: http: //*.mywebsite.com/*

Koristeći Pravilo stranice u CloudFlare-u, možemo mu reći da uvijek koristi HTTPS za našu web stranicu.

Na popisu odaberite Uvijek koristi HTTPS i kliknite Spremi i primijeni.

Možete po želji dodati URL prosljeđivanja kako biste osigurali da se sav promet preusmjeri na www.mywebsite.com ili mywebsite.com.

Ovo su posljednja Pravila stranice za honorablecode.com

Pročistite predmemoriju kad god želite

Kad god napravite promjene na svojoj web lokaciji, pređite na CloudFlare konzolu, pristupite kartici Caching i na padajućem izborniku odaberite Purge Everything:

Novi zahtjevi za vaše web mjesto sada će ići u Google App Engine i poslužit će se najnovija inačica (i CloudFlare će ih spremiti za buduće zahtjeve).

Vaša web stranica je uživo!

Jednom kada se DNS poslužitelji uspostave, vaše sigurno besplatno statičko web mjesto bit će na mreži.

Zaključak

Samo BESPLATNIM opcijama Google App Engine-a i CloudFlare-a, te pomalo DNS-ovom magijom, bez ikakvih smo troškova uspjeli ugostiti statičnu web lokaciju spremnu za proizvodnju.

Uspjeli smo:

  • Postavljanje projekta Google App Engine
  • Instalirajte web mjesto u oblak
  • Nabavite naše ime domene
  • Postavljanje vlastitog imena domene pomoću CloudFlare
  • Pomičite se s postavkama DNS-a da biste usmjerili domenu na našu web stranicu
  • Konfigurirajte predmemoriranje i HTTPS na domeni za podršku ogromne razmjere

Dobar posao.

Kupite moju knjigu

Teoretski sam vam samo uštedio novac pa zašto ne reći hvala kupnjom moje knjige. :)

Ako volite dovršiti stvari kao u ovom članku, svidjet će vam se što možete učiniti s Goom. U mojoj knjizi Programiranje nacrta crteža stvaramo prave stvari. Ispružite svoje dev mišiće.

Dohvatite svoju kopiju s https://www.packtpub.com/application-development/go-programming-blueprints-second-edition

Također, tweet me @matryer ako se zaglavite, pa ću vidjeti mogu li vam pomoći.