Instalowanie serwera Caddy na Ubuntu

Instalowanie serwera Caddy na Ubuntu
TLS jest ważny dla wszystkich stron internetowych i aplikacji internetowych. Jeśli istnieje aplikacja, która korzysta z HTTP lub e -maila, potrzebuje TLS. TLS zapewnia prywatność, uczciwość i autentyczność treści. Z bezpłatnymi władzami certyfikatów TLS, takimi jak Let's Encrypt i Cloudflare, TLS zamienia się bardziej w normę niż w szczególnym przypadku.Jednak włączenie TLS jest często masowo skomplikowanym procesem. Ma również ogromne konsekwencje bezpieczeństwa, jeśli konfiguracje są niewłaściwe lub zabranianie nieba, przypadkowo wyciekasz z prywatnym kluczem TLS. Aby złagodzić niektóre z tych zagrożeń, a także ułatwić nasze życie, w mieście jest nowy serwer WWW. Caddy mówi HTTP/2 i jest wyposażony w włączone TLS po wyjęciu z pudełka. Oznacza to, że nie musisz ręcznie konfigurować HTTP na przekierowanie HTTPS lub martwić się o apartamenty szyfrów Gallizion.

Z serwerem WWW Caddy otrzymujesz HTTPS lub nic. Zobaczmy więc, jak możesz zainstalować Caddy na Ubuntu i skonfiguruj go tak, aby obsługiwać aplikację internetową. Otrzymamy nasze certyfikaty TLS od LetsEncrypt.

Organizować coś

Załóżmy, że masz VPS z adresem IP: 10.20.30.40 i subdomena FQDN.przykład.com, kto jest rekordem, wskazuje na ten adres IP.
VPS działa Ubuntu 18.04 LTS Server Edition i następujące konfiguracje są wykonywane jako użytkownik root.

Krok 1: Instalowanie serwera WWW Caddy

Caddy jest napisany w Go i może działać jako samodzielny plik wykonywalny. Istnieją jednak różne wtyczki, które można w nim zbudować dla określonych serwerów DNS itp. Będziemy instalować równinę binarną bez żadnej wtyczki, aby działał we wszystkich dostosowacjach.

Aby uzyskać swoją binarną wizytę na oficjalnej stronie pobierania i wybierz wszystkie wymagane wtyczki i telemetrii. Below it will be a bash command to download and place the caddy server binary in the right location. Jako użytkownik root, uruchom:

$ curl https: // getcaddy.com | Bash -s osobisty

Po zrobieniu tego możemy zlokalizować plik binarny, uruchamiając:

$ Whereis Caddy
Caddy:/usr/lokalny/bin/caddy

Jeśli kiedykolwiek chcesz usunąć serwer lub zaktualizować go o nowsze wykonywalne, teraz wiesz, gdzie szukać.

Krok 2: Testowanie Twojej witryny

Jeśli nie masz witryny, po prostu utwórz pusty folder i uruchom tam polecenia. Możesz uzyskać błąd 404 w przeglądarce, ale konfiguracja serwera może być nadal testowana. Jeśli masz witrynę, przemierzaj katalog, w którym znajduje się Webroot Twojej witryny. Jako typowy przykład wybieram /var/www/mysite Jako przykład z następującym indeksem.HTML przechowywane w nim.

/var/www/mysite/index.html



Ta strona jest serwerowa przez Caddy Server


Ta strona jest serwerowa przez Caddy Server


To jest akapit.



To wystarczy, aby nas zacząć. Teraz w tym samym katalogu, co ten indeks.Strona HTML, uruchom następujący Commad:

$ Caddy
Aktywowanie funkcji prywatności… gotowe.
http: //: 2015

OSTRZEŻENIE: Limit deskryptora pliku 1024 jest zbyt niski dla serwerów produkcyjnych. Zaleca się co najmniej 8192. Napraw za pomocą „Ulimit -n 8192”.

Pozostaw Caddy'ego w tym stanie.

Możesz przejść do publicznego adresu IP swojego serwera pod numerem portu 2015, aby przetestować to: http: // 10.20.30.40: 2015 upewnij się, że Twoja zapora nie blokuje tego portu.

I zobaczysz ten indeks.HTML jest automatycznie obsługiwany. Jest to zgodne z wiekową konwencją, że pierwsza strona każdej strony nazywa się indeksem, który większość serwerów WWW, takich jak Nginx, Apache, a nawet Caddy, służy jako pierwsza strona, nawet jeśli nie określacie tej strony za pomocą /indeksu.html na końcu adresu URL.

Krok 3: Konfigurowanie HTTPS

Teraz, gdy potwierdziłeś, że Twoja witryna rzeczywiście działa z Caddy i może być z nią podana, nadszedł czas, aby skonfigurować HTTPS. Aby to zrobić, możesz użyć interfejsu wiersza poleceń lub użyć pliku konfiguracji o nazwie CaddyFile. Najpierw użyjemy wiersza poleceń.

W tym samym katalogu, co Twoja strona internetowa, uruchom następujące polecenie:

$ caddy -host subdomena.przykład.com
## Po raz pierwszy poprosi Cię o swój adres e -mail, abyś mógł uzyskać
Powiadomienie o odnowieniu certyfikatów od LetsEncrypt

Wyjście:

Aktywowanie funkcji prywatności…
Twoje strony będą obsługiwane przez HTTPS automatycznie za pomocą Let's Encrypt.
Kontynuując, zgadzasz się na umowę abonentów Let's Encrypt pod adresem:
https: // LetsEncrypt.org/dokumenty/le-sa-v1.2 listopada 15-2017.PDF
Wprowadź swój adres e -mail, aby oznaczyć umowę i zostać powiadomiony
W przypadku problemów. Możesz pozostawić to puste, ale nie polecamy tego.
Adres e -mail: [email protected]

Otóż ​​to! Twoja witryna jest teraz uruchomiona. Możesz odwiedzić subdomenę.przykład.com i zostanie automatycznie przekierowywany do HTTPS bez żadnego niestandardowego numeru portu lub innych niuansów.

To takie łatwe! Możesz Ctrl+C, aby zatrzymać serwer, następnym razem po prostu ponownie użyje tego certyfikatu.

Krok 4: Pisanie swojego caddyfile

Powyższa metoda jest dobra w eksperymentalnych przypadkach użycia, w których właśnie testujesz wodę. Ale jeśli chcesz uruchomionego serwera WWW jako proces tła, musisz napisać Caddyfile i powiedzieć serwerowi WWW, aby użył tej konfiguracji do uruchomienia serwera.

To najprostszy przykład tej samej strony, którą hostowaliśmy powyżej:

subdomena.przykład.com
root/var/www/mysite

Dyrektywa główna informuje serwer WWW, gdzie znajduje się strona internetowa. Nie możesz wyjść z tego katalogu od strony klienta. Zasadniczo dobrym pomysłem jest umieszczenie pliku caddy w dowolnym miejscu, ale wewnątrz tego Webroot. Możesz umieścić go w / etc / folder lub katalog domowy. Na przykład, jeśli plik jest tworzony na /etc /caddyfile, możesz powiedzieć serwerowi, aby użył tej konfiguracji, uruchamiając polecenie:

$ caddy -conf /etc /caddyfile

Istnieje wiele dyrektyw, których można użyć do dostrojenia serwera. Możesz włączyć rejestrowanie, kompresję, odwrotne proxy itp. Oficjalna dokumentacja jest dobrym miejscem do rozpoczęcia poszukiwania dyrektyw związanych z sprawą użycia. Oto kolejny przykład, w którym obsługiwane są dwie strony internetowe o dwóch różnych nazwach domen:

subdomena.przykład.com
root/var/www/mysite

Subdomain2.przykład.com
root/var/www/mysite2
gzip
Log… /Dostęp.dziennik

Dyrektywa GZIP umożliwia kompresję, jeśli klient ją obsługuje. Poprawia to wydajność, ponieważ więcej danych można wysłać w stosunku do przepustowości i tego samego czasu czasu. Logowanie pomaga w debugowaniu i śledzeniu aktywności sieciowej.

Wniosek

Największą siłą Caddy Web Server jest łatwy w zapisaniu i odczytania pliku konfiguracji oraz jego elastyczność na wielu platformach. Jednak ze względu na dziwne licencjonowanie serwer nie jest ściśle open source. Kod źródłowy jest open source i możesz całkowicie go skompilować i użyć wynikającego z tego wykonywania, ale binarne, które otrzymujesz z oficjalnej witryny, nie ma być używane do celów komercyjnych bez odpowiedniej licencji.

Sprowadza nas to z powrotem do kwestii komplikacji, w których zamiast radzić sobie z plikami konfiguracyjnymi, musimy również poradzić sobie z kompilacją kodu źródłowego, pokonując cel łatwego w użyciu serwera WWW. Daj nam znać, jeśli masz jakieś przemyślenia na temat Caddy, a jeśli którekolwiek z twoich stron internetowych uruchomi się.