HAK CHMURY: Jak przygotować produkcję DARMOWY statyczny hosting strony

W tym artykule dowiesz się wszystkiego, co musisz zrobić, aby przygotować statyczną stronę internetową i przygotować ją do produkcji.

Będzie obsługiwał niesamowitą ilość ruchu i nic Cię nie kosztuje!

Razem będziemy bawić się z rekordami DNS i innymi rzeczami niskiego poziomu, ale jest to łatwiejsze niż się wydaje - i całkowicie tego warte.

Nie mogłem znaleźć sposobu na uzyskanie darmowej nazwy domeny, więc w duchu prawdziwej przejrzystości powinienem powiedzieć, że będziesz musiał za to zapłacić.

Wprowadzenie

Zmusimy Google i CloudFlare do wykonania dla nas dużych wysiłków, więc musimy tylko zbudować stronę internetową i wszystko skonfigurować.

W tym artykule będziemy:

  • Skonfiguruj projekt Google App Engine
  • Wdróż witrynę internetową w chmurze
  • Uzyskaj własną nazwę domeny
  • Skonfiguruj własną nazwę domeny za pomocą CloudFlare
  • Przekartkuj ustawienia DNS, aby skierować domenę na naszą stronę internetową
  • Skonfiguruj buforowanie i HTTPS w domenie, aby obsługiwać masową skalę

Brzmi ciężko, zwłaszcza jeśli nie przyzwyczaiłeś się do tych terminów, ale omówimy każdy krok razem.

Proszę rozważyć udostępnienie tego w mediach społecznościowych innym osobom, które mogą uznać to za przydatne, lub wysłać link do każdej osoby, która płaci za statyczny hosting strony.

Co to jest Google App Engine?

Google App Engine to usługa firmy Google, która pozwala tworzyć i hostować skomplikowane aplikacje internetowe działające na bardzo dużą skalę. Możesz wchodzić w interakcje z setkami interfejsów API, aby rozwiązywać wszelkiego rodzaju problemy techniczne, takie jak przechowywanie danych, uruchamianie zapytań, praca w kolejkach, zapewnianie możliwości uczenia maszynowego, wysyłanie wiadomości e-mail… o tak, a także obsługa HTML i CSS.

Bezpłatny przydział w Google App Engine oznacza, że ​​Twoja witryna może uzyskać określony ruch, zanim będziesz musiał za niego zapłacić; ale tak naprawdę nie zbliżymy się do tego dzięki CloudFlare.

Co to jest CloudFlare?

CloudFlare jest dość trudny do opisania, ale dla naszych celów możesz myśleć o nim jako o niesamowitej (i darmowej) funkcji buforowania zawartości, w której serwery CloudFlare przechowują kopię twojej witryny i przekazują ją bezpośrednio odwiedzającym. Warto zauważyć, że CloudFlare przechowuje wiele kopii treści w kluczowych lokalizacjach na całym świecie, dzięki czemu przeglądarki odwiedzających nie muszą sięgać bardzo daleko w Internet, aby je zdobyć.

W przypadku witryn, które nie zmieniają się często, możesz ustawić zasady pamięci podręcznej na dość agresywne - dzięki czemu Twój projekt Google App Engine prawie nie otrzyma wielu żądań. Jeśli zaktualizujesz swoją witrynę, musisz poczekać, aż pamięć podręczna wygaśnie, lub ręcznie ją wyczyścić (wyjaśnię, jak to będzie później).

KROK 1: Zbuduj swoją stronę internetową

Pierwszą rzeczą do zrobienia jest zbudowanie witryny. Zrób to za pomocą narzędzi, do których byłeś przyzwyczajony, celem jest utworzenie folderu zawierającego całą witrynę. Nie może zawierać żadnej dynamicznej zawartości, więc skrypty CGI, strony .aspx, kod Ruby on Rails itp. Nie są dostępne. Statyczne strony internetowe to zwykle tylko HTML, CSS, pliki JavaScript, obrazy itp.

Upewnij się, że ma stronę index.html

Gdy odwiedzający trafią na twoją nazwę domeny bez ścieżki, strona index.html zostanie wyświetlona, ​​więc upewnij się, że istnieje.

Umieść wszystko w folderze www

Dodamy folder zawierający naszą statyczną stronę internetową, aby struktura naszego projektu wyglądała następująco:

Umieść całą stronę internetową w folderze `www`

Nie martw się o ten plik app.yaml później; dodamy go wkrótce.

Możesz myśleć o folderze www jako o tym, co będzie wyświetlane, gdy odwiedzający wejdą na mywebsite.com.

KROK 2: Wdróż w Google App Engine

Teraz, gdy masz już swoją witrynę, czas ją wdrożyć w Google App Engine.

Zaloguj się do konsoli Google Cloud Platform

Wejdź na https://console.cloud.google.com i zaloguj się przy użyciu swojego konta Google.

Utwórz projekt

Wybierz z menu opcję Utwórz projekt i wybierz odpowiednią nazwę projektu, która odzwierciedla nazwę Twojej domeny. Więc jeśli twoja domena to matswebsite.com, być może nazwij ten projekt Mats Website. Automatycznie wygeneruje dla Ciebie identyfikator projektu, ale możesz kliknąć mały link Edytuj, aby go zmienić i wybrać własny. Później użyjemy tego identyfikatora projektu, aby był łatwy do zapamiętania. Identyfikator projektu musi być globalnie unikalny, dlatego korzystanie z Twojej domeny nie jest złym pomysłem, np. matswebsitecom.

Kliknij UTWÓRZ.

Tworzenie projektu na Google Cloud Platform

Po chwili projekt zostanie utworzony i będziemy mogli włączyć Google App Engine.

Uzyskaj dostęp do menu (kliknij trzy linie w lewym górnym rogu) i wybierz App Engine, aby uzyskać dostęp do konsoli App Engine.

Zainstaluj Google Cloud SDK

Przejdź na stronę https://cloud.google.com/sdk/ i pobierz pakiet Google Cloud SDK na swój komputer. Zestaw SDK zawiera narzędzia wiersza polecenia, które pozwolą nam wdrożyć Twoją witrynę.

Dodaj plik app.yaml

Aby poinformować Google App Engine, w jaki sposób chcemy wdrożyć naszą witrynę, musimy utworzyć mały plik konfiguracyjny w folderze głównym naszej witryny.

Wstaw następujące elementy do nowego pliku:

środowisko wykonawcze: idź
api_version: go1
handlers:
- url: /
  pliki_ statyczne: www / index.html
  upload: www / index.html
- url: /(.*)
  pliki_ statyczne: www / \ 1
  upload: www /(.*)

W plikach YAML białe znaki mają znaczenie, więc upewnij się, że przed statycznymi plikami i liniami przesyłania znajdują się dwie spacje.

Możesz dowiedzieć się więcej o pliku app.yaml, czytając dokumentację, na razie wystarczy wiedzieć, że statycznie obsługujemy zawartość z folderu www.

Dodaj plik main.go

Aby nasz projekt był prawidłowym projektem Go, musimy dodać trochę kodu Go. Nie martw się, dam ci absolutnie minimalną wymaganą ilość kodu.

Utwórz plik w folderze (obok pliku app.yaml) o nazwie main.go i wstaw następujący kod:

pakiet aplikacji
func main () {}
Jeśli wcześniej nie słyszałeś o Go, zdecydowanie polecam rzucić okiem - to zabawny i niezwykle przydatny język: dlaczego nie wybrać się na wycieczkę?

Rozmieścić

W powłoce terminala najpierw użyj polecenia gcloud (z Google Cloud SDK), aby się zalogować:

Logowanie do gcloud auth
Jeśli utkniesz tutaj, przejdź do przewodnika Szybki start, aby uzyskać pomoc.

Spowoduje to otwarcie przeglądarki internetowej i poproszenie o zalogowanie się na konto Google. Po zakończeniu terminal poinformuje, że logowanie się powiodło.

Teraz przejdź do folderu swojej witryny, aby wykonanie polecenia ls lub dir pokazało folder www na liście.

Teraz ustaw nazwę projektu:

gcloud config ustaw projekt PROJECT_ID

Zastąp PROJECT_ID identyfikatorem projektu skonfigurowanym podczas tworzenia projektu w Google Cloud Console.

Teraz rozpoczniemy wdrażanie:

wdrożenie aplikacji gcloud

Jeśli pakiet Google Cloud SDK potrzebuje dodatkowych składników (dla mnie potrzebował app-engine-go), pojawi się monit o ich zainstalowanie. Odpowiedz Y (na tak) na każde pytanie.

Na koniec pojawi się pytanie, czy chcesz wdrożyć aplikację - naciśnij klawisz Y i wprowadź ponownie.

Po chwili aplikacja zostanie wdrożona i będzie dostępna za pośrednictwem domeny appspot.com:

https://PROJECT_ID.appspot.com
Pamiętaj, aby zastąpić PROJECT_ID identyfikatorem projektu.

KROK 3: Skonfiguruj nazwę swojej domeny

Wybierz i kup domenę

Aby odwiedzający mogli zobaczyć Twoją witrynę, będą musieli odwiedzić nazwę domeny - i chociaż możesz korzystać z appspot.com, który daje Google App Engine za darmo, o wiele przyjemniej jest mieć własną.

Wejdź na namecheap.com lub wyszukaj firmę, która sprzedaje nazwy domen i kup domenę. Będziesz musiał mieć możliwość zmiany serwerów nazw, więc upewnij się, że firma to obsługuje (Namecheap robi).

Skonfiguruj CloudFlare

Przejdź do CloudFlare.com i utwórz konto. Następnie wybierz Dodaj witrynę z paska menu u góry. Wprowadź swoją domenę i kliknij Rozpocznij skanowanie. Gdy skończysz robić magię, która wie, co Bóg wie, kliknij Kontynuuj konfigurację i postępuj zgodnie z pozostałymi krokami, klikając Kontynuuj, gdzie możesz, aż dojdziesz do strony Wybierz plan CloudFlare.

Wybierz BEZPŁATNY abonament i kliknij Kontynuuj.

Darmowy serwis WWW zawiera wszystko, czego potrzebujemy - CloudFlare jest dość hojny.

Następnie zostaniesz poproszony o aktualizację serwerów nazw, więc wróć do miejsca, w którym kupiłeś nazwę swojej domeny i wprowadź wartości podane przez CloudFlare.

Aby kierować ruchem przez CloudFlare, musimy zaktualizować serwery nazw. CloudFlare powie ci, jakich wartości użyć.

W Namecheap przejdź do Pulpitu nawigacyjnego i kliknij ZARZĄDZAJ obok swojej domeny. Następnie poszukaj NAMESERVERS i wybierz Niestandardowy DNS. Skopiuj i wklej serwery nazw w dwóch podanych polach:

Namecheap pozwala określić własne serwery nazw. Pamiętaj, aby kliknąć mały zielony znacznik wyboru, aby potwierdzić zmiany.

Gdy to zrobisz, kliknij Kontynuuj w CloudFlare i poczekaj. Zastosowanie zmian może trochę potrwać, więc idź i napij się herbaty lub innego odpowiedniego (lub nieodpowiedniego) napoju.

W końcu zmieni kolor na zielony (możesz odświeżyć tyle razy, ile chcesz):

Po zaktualizowaniu serwerów nazw Twoja witryna będzie dostępna w CloudFlare.

Powiedz App Engine o swojej domenie

Po powrocie do Google Cloud Console ponownie otwórz konsolę App Engine i wybierz Ustawienia.

Na karcie Domeny niestandardowe wybierz Dodaj domenę niestandardową.

Aby poprosić Google App Engine o udostępnienie treści, musisz zweryfikować swoje prawo własności do domeny - zrób to, wybierając opcję Zweryfikuj nową domenę z listy i wpisując ją w odpowiednim polu.

Kliknięcie przycisku Verify uruchomi nowy proces, w którym możemy udowodnić, że jesteśmy właścicielem i kontrolujemy tę nazwę domeny. W nowym oknie wybierz nazwę swojego dostawcy (miejmy nadzieję, że Namecheap - ponieważ jest to łatwe) i zauważ, że zostałeś poproszony o dodanie rekordu TXT DNS:

Aby udowodnić Google, że kontrolujemy nazwę domeny, musimy dodać specjalny dostarczony przez nią kod DNS.

Nie martw się - to nie jest tak przerażające, jak się wydaje. Wybierz dziwny tekst w polu, skopiuj go i wróć do CloudFlare, a my dodamy wartość.

Upewnij się, że domena jest zaznaczona w CloudFlare i wybierz kartę DNS.

U góry tabeli znajduje się formularz, w którym możemy dodać rekord, który Google chce:

W polu Nazwa wpisz znak @, a dla Treści wklej wartość podaną nam przez Google. Kliknij Dodaj rekord.

Zostanie dodany do listy rekordów DNS.

Teraz wróć do Google Cloud Platform i kliknij Zweryfikuj.

Może to zająć trochę czasu - więc nie denerwuj się, jeśli to nie zadziała od razu. Tak długo, jak wkleisz poprawną wartość do CloudFlare, będzie ona ostatecznie aktualizowana. W rzeczywistości czekasz na rozprzestrzenianie się serwerów DNS, co brzmi bardziej magicznie niż w rzeczywistości - ale w każdym razie, jeśli nie chcesz czekać, rozważ użycie publicznych serwerów DNS Google, są one bardzo szybkie.

Wreszcie znajdziesz stronę sukcesu powyżej.

Wróć do Google Cloud Console> App Engine> Ustawienia> Domeny niestandardowe, kliknij Odśwież domeny i zauważ, że Twoja domena jest teraz opcją na liście rozwijanej. Wybierz i kliknij Kontynuuj, a następnie kliknij Zapisz mapowania.

Po chwili kliknij Kontynuuj ponownie i zauważ, że Google App Engine daje nam teraz nowe ustawienia DNS. Musimy upewnić się, że nasza strona DNS CloudFlare ma te same wartości.

Google chce, abyśmy umieścili każdą z tych wartości w konsoli CloudFlare - trochę kopiowania i wklejania nikomu nie zaszkodzi, prawda?

Po powrocie do CloudFlare naciśnij X obok wszystkich rekordów DNS oprócz TXT, który dodaliśmy (zostawimy to, aby Google wiedział, że zawsze kontrolujemy tę domenę).

Teraz dla każdego elementu na stronie Google utwórz rekord w CloudFlare. To jest najtrudniejsza rzecz, którą musimy zrobić, dlatego najpierw przeczytaj poniższe wskazówki:

  • W menu TXT możesz podać typ (będziesz potrzebować A, AAAA i CNAME)
  • W Google App Engine pole Alias ​​to Nazwa w Cloudflare. Jeśli nie ma aliasu, ponownie użyj znaku @. (Możesz też pozostawić to pole puste, a CloudFlare będzie wiedział, co masz na myśli - lub wyświetli monit o ustawienie go na @)
  • Pozostaw TTL jako automatyczny TTL
  • CloudFlare wie, co robi, i ciężko jest popełnić błąd - więc skopiuj i wklej każdą wartość i zaufaj CloudFlare, aby poinformować Cię, jeśli się zepsujesz
  • Uważaj na dodatkowe białe znaki podczas kopiowania i wklejania, może to spowodować błąd sprawdzania poprawności, ale jest trudny do zauważenia

Skończy się to następująco:

Wróć do Google App Engine, kliknij Gotowe.

Daj internetowi czas na nadrobienie zaległości

Aby Twoja domena mogła działać, Internet musi nadrobić zaległości w tych zmianach. Mówią, że może to potrwać 24 godziny, ale jeśli używasz serwerów DNS Google, zwykle jest to dość natychmiastowe.

Podczas oczekiwania możesz włączyć agresywne buforowanie i HTTPS w CloudFlare.

KROK 4: Skonfiguruj buforowanie i HTTPS

Sztuką na utrzymanie darmowego hostingu statycznego, niezależnie od tego, jaki ruch otrzymujesz, jest włączenie buforowania w CloudFlare.

Kliknij kartę Reguły strony i Utwórz regułę strony.

W polu dopasowania adresu URL wprowadź domenę w postaci: * .mywebsite.com / * - co oznacza, że ​​reguła powinna obowiązywać niezależnie od poddomeny i ścieżki.

W ustawieniu wybierz Edge Cache TTL i ustaw wartość na miesiąc. Kliknij Zapisz i wdróż.

Ustawienie TTL Edge Cache na miesiąc (teoretycznie) spowoduje, że nasza witryna Google App Engine będzie wyświetlana tylko raz w miesiącu. Przez resztę czasu CloudNlare CDN będzie go obsługiwał. Oczywiście jest to agresywne - możesz grać z ustawieniami, aby znaleźć odpowiednie dla siebie wartości.

Aby nasza strona była dostępna przez HTTPS, dodamy kolejną regułę strony:

Tym razem ustaw wartość dopasowania adresu URL jako: http: //*.mywebsite.com/*

Korzystając z reguły strony w CloudFlare, możemy powiedzieć jej, aby zawsze używała HTTPS na naszej stronie internetowej.

Wybierz z listy opcję Zawsze używaj HTTPS i kliknij Zapisz i wdróż.

Możesz opcjonalnie dodać adres URL przesyłania dalej, aby upewnić się, że cały ruch jest kierowany do www.mywebsite.com lub mywebsite.com.

To są ostatnie zasady strony dla honorablecode.com

Wyczyść pamięć podręczną, kiedy chcesz

Za każdym razem, gdy wprowadzasz zmiany w swojej witrynie, wejdź do konsoli CloudFlare, przejdź do karty Buforowanie i wybierz Wyczyść wszystko z menu:

Nowe żądania dotyczące Twojej witryny przejdą teraz do Google App Engine, a najnowsza wersja będzie obsługiwana (i buforowana przez CloudFlare dla przyszłych żądań).

Twoja strona jest na żywo!

Gdy serwery DNS nadrobią zaległości, twoja bezpieczna bezpłatna statyczna witryna będzie w trybie online.

Wniosek

Korzystając z DARMOWYCH opcji Google App Engine i CloudFlare oraz odrobiny magii DNS, jesteśmy w stanie hostować naszą gotową do produkcji statyczną stronę internetową bez żadnych kosztów.

Byliśmy w stanie:

  • Skonfiguruj projekt Google App Engine
  • Wdróż witrynę internetową w chmurze
  • Uzyskaj własną nazwę domeny
  • Skonfiguruj własną nazwę domeny za pomocą CloudFlare
  • Przekartkuj ustawienia DNS, aby skierować domenę na naszą stronę internetową
  • Skonfiguruj buforowanie i HTTPS w domenie, aby obsługiwać masową skalę

Dobra robota.

Kup moją książkę

Teoretycznie właśnie zaoszczędziłem Ci dużo pieniędzy, więc dlaczego nie podziękować, kupując moją książkę. :)

Jeśli lubisz robić rzeczy jak w tym artykule, spodoba ci się to, co możesz zrobić w Go. W mojej książce Go Programming Blueprints tworzymy prawdziwe rzeczy. Napnij mięśnie deweloperów.

Pobierz swoją kopię z https://www.packtpub.com/application-development/go-programming-blueprints-second-edition

Wyślij też tweeta do @matryer, jeśli utkniesz, a ja zobaczę, czy mogę pomóc.