Jak zainstalować serwer sieciowy Caddy w systemie Linux

W dzisiejszych czasach HTTPS ma kluczowe znaczenie podczas hostowania witryny internetowej. Bez tego Twoi użytkownicy mogliby wyciekać na świat bardzo osobiste dane z Twojej witryny. Aby rozwiązać ten problem, wielu webmasterów Linuksa zaczęło używać narzędzi LetsEncrypt, ponieważ bardzo ułatwiają one wygenerowanie certyfikatu. Mimo to, tak proste, jak LetsEncrpyt, włączenie go na Nginx lub Apache w systemie Linux może nadal być trochę uciążliwe. Na szczęście jest lepszy sposób. Przedstawiamy serwer sieciowy Caddy. Jest to serwer WWW, który ma domyślnie włączony protokół HTTPS. Jeśli masz dość kłopotów z certyfikatami SSL, Caddy może być tym, czego potrzebujesz.

Instalowanie Caddy

Instalacja serwera sieciowego Caddy działa prawie tak samo, niezależnie od używanego systemu operacyjnego serwera. Powodem, dla którego Caddy jest tak łatwy w instalacji, jest to, że programista zdecydował się użyć skryptu Bash do pobrania do zainstalowania oprogramowania, zamiast dodawać repozytoria oprogramowania innych firm lub instalować za pomocą plików binarnych.

W tym samouczku będziemy używać Ubuntu Server, chociaż uruchomienie serwera internetowego Caddy będzie działać dobrze również na większości innych systemów operacyjnych Linux, nawet tych na komputery stacjonarne. Na początek upewnij się, że masz aplikację Curl na komputerze z systemem Linux. Jeśli nie, otwórz terminal, wyszukaj w menedżerze pakietów „curl” i zainstaluj go.

Uwaga: sprawdź, czy masz już curl, uruchamiając curl w terminalu. Jeśli pojawi się okno „pomocy” dla programu, masz Curl na swoim komputerze z Linuksem.

curl https://getcaddy.com | bash -s personal

Serwer sieciowy Caddy jest darmowy do użytku osobistego, ale musisz to określić. Planujesz używać Caddy w środowisku korporacyjnym? Uruchom polecenie instalacji za pomocą:

curl https://getcaddy.com | bash -s commercial

Uruchomienie Curl przepuści go przez Bash i automatycznie rozpocznie proces instalacji. Instalator Caddy zajmie trochę czasu, aby pobrać plik binarny serwera WWW i umieścić go w katalogu / usr / local / bin /. Jeśli instalacja się powiedzie, zobaczysz komunikat „Pomyślnie zainstalowano”.

W tym momencie musisz zmodyfikować plik binarny Caddy. Uruchom następujące polecenie w terminalu z uprawnieniami sudo.

sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy

Konfiguracja Caddy

Caddy jest zainstalowany na serwerze. Następnym krokiem procesu jest skonfigurowanie struktury katalogów. Zacznij od uzyskania terminala root. Dzięki temu modyfikowanie folderów w systemie plików będzie znacznie szybsze, ponieważ nie będziesz musiał wprowadzać sudo dla każdego polecenia, a następnie hasła.

W większości systemów użytkownicy mogą logować się bezpośrednio na konto root za pomocą:

su

Jednak na serwerze Ubuntu konto roota jest zablokowane ze względów bezpieczeństwa. Aby to obejść, zdobądź powłokę roota za pomocą sudo.

sudo -s

Teraz, gdy mamy uprawnienia administratora, utwórz katalogi niezbędne do prawidłowego działania serwera Caddy.

mkdir /etc/caddy

mkdir /etc/ssl/caddy

Uwaga: Jeśli twój serwer ma już katalog / var / www /, pomiń ostatnie polecenie mkdir.

mkdir /var/www

Następnie utwórz nowy plik „Caddyfile” w / etc / caddy /.

touch /etc/caddy/Caddyfile

Używając polecenia chmod, zaktualizuj uprawnienia do podfolderu Caddy w / etc / ssl /.

chmod 0770 /etc/ssl/caddy

Na koniec przejdź do katalogu / var / www /:

chown www-data: /var/www

Caddy Systemd File

Większość serwerów, zwłaszcza serwer Ubuntu, w dużym stopniu wykorzystuje system inicjujący systemd. Jednak ponieważ serwer sieciowy jest instalowany za pomocą skryptu Bash, plik systemowy nie jest obecny. Zamiast tego będziemy musieli stworzyć własne. Użyj polecenia dotykowego, aby utworzyć nowy, pusty plik usługi.

touch /lib/systemd/system/caddy.service

Otwórz nowy plik caddy.service i wklej do niego następujący kod:

[Unit]
Opis = serwer sieciowy Caddy HTTP / 2
Documentation = https: //caddyserver.com/docs
After = network-online.target
Wants = network-online.target

[Service]
Restart = w przypadku awarii
StartLimitInterval = 86400
StartLimitBurst = 5

Użytkownik = dane-www
Grupa = dane-www
; Certyfikaty wydane przez Letsencrypt będą zapisywane w tym katalogu.
Środowisko = CADDYPATH = / etc / ssl / caddy

ExecStart = / usr / local / bin / caddy -log stdout -agree = true -conf = / etc / caddy / Caddyfile -root = / var / tmp
ExecReload = / bin / kill -USR1 $ MAINPID

LimitNOFILE = 1048576
LimitNPROC = 64

PrivateTmp = true
PrivateDevices = true
ProtectHome = true
ProtectSystem = full
ReadWriteDirectories = / etc / ssl / caddy

; Następujące dodatkowe dyrektywy bezpieczeństwa działają tylko z systememd v229 lub nowszym.
; Ponadto odzyskują przywileje, które może uzyskać caddie. Odkomentuj, jeśli chcesz.
; Pamiętaj, że może być konieczne dodanie funkcji wymaganych przez wszelkie używane wtyczki.
; CapabilityBoundingSet = CAP_NET_BIND_SERVICE
; AmbientCapabilities = CAP_NET_BIND_SERVICE
; NoNewPrivileges = true

[Install]
WantedBy = multi-user.target

Jest dużo kodu dla pliku caddy.service, więc postaraj się, aby wszystko tam było. Gdy masz pewność, zapisz zmiany, naciskając kombinację klawiszy Ctrl + X. Wyjdź z edytora za pomocą Ctrl + X.

systemctl enable caddy.service

systemctl start caddy.service

Po skonfigurowaniu systemd wszystko powinno być gotowe do pracy.

Konfigurowanie domen

Caddy, jak każdy inny serwer WWW, wymaga konfiguracji przed użyciem. Zacznij od utworzenia folderu domeny:

Uwaga: pamiętaj, aby zmienić nazwę „test-domain.org” na swoją domenę.

mkdir -p /var/www/test-domain.org/

Następnie edytuj plik Caddyfile, który utworzyliśmy wcześniej.

nano /etc/caddy/Caddyfile

Wklej następujący kod, aby aktywować nową domenę:

moja-domena.com {
root /var/www/test-domain.org
}

Uruchom ponownie usługę Caddy systemd, aby zapisać zmiany. Gdy usługa zakończy ponowne uruchamianie, Caddy jest gotowy do użycia na serwerze.

systemctl restart caddy.service