Wie man eine Website mit Caddy auf Ubuntu 18.04 hostet

Caddy, auch bekannt als Caddy Webserver, ist ein Open-Source-Webserver, der in der Sprache Go geschrieben wurde. Standardmäßig lädt Caddy automatisch TLS-Zertifikate für deine Websites herunter und installiert sie. Du kannst Caddy nutzen, um deine statische Website mit Komprimierung, Template-Evaluierung, Markdown-Rendering und mehr zu bedienen. Es ist ein moderner, unternehmenstauglicher und plattformübergreifender Webserver, der virtuelles Hosting, HTTP/2, WebSockets, FastCGI, Markdown und mehr unterstützt. Er wird mit vielen Plugins geliefert, mit denen du die Funktionalität von Caddy erweitern kannst.

In diesem Tutorial erklären wir dir, wie du eine Website mit einem Caddy-Webserver auf Ubuntu 18.04 hosten kannst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 18.04 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt. In diesem Tutorial werden wir caddy.linuxbuz.com verwenden.
  • Ein Root-Passwort ist auf deinem Server eingerichtet.

Erste Schritte

Bevor du beginnst, solltest du dein Systempaket auf die neueste Version aktualisieren. Du kannst alle Pakete mit dem folgenden Befehl aktualisieren:

apt-get update -y
apt-get upgrade -y

Sobald alle Pakete aktualisiert sind, starte dein System neu, damit die Änderungen übernommen werden.

Caddy installieren

Standardmäßig ist Caddy nicht im Standard-Repository von Ubuntu 18.04 verfügbar. Daher kannst du es installieren, indem du das Caddy-Installationsskript herunterlädst, das von Caddy bereitgestellt wird.

Installiere zunächst das Paket curl mit dem folgenden Befehl:

apt-get install curl -y

Sobald es installiert ist, führe den folgenden Befehl aus, um den Caddy-Webserver in deinem System zu installieren.

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

Wenn die Installation erfolgreich abgeschlossen ist, solltest du die folgende Ausgabe erhalten:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7380  100  7380    0     0   266k      0 --:--:-- --:--:-- --:--:--  277k
Downloading Caddy for linux/amd64 (personal license)...
Download verification OK
Extracting...
Putting caddy in /usr/local/bin (may require password)
v1.0.4
Successfully installed

Wo:

Die Option -s personal wird verwendet, um eine persönliche Lizenz anzugeben, und hook.service ist ein Plugin, das dir den Zugriff auf die systemd-Unit-Datei ermöglicht, mit der du Caddy als systemd-Dienst verwalten kannst.

Als Nächstes kannst du dir die installierte Version von Caddy mit dem folgenden Befehl anzeigen lassen:

caddy -version

Du solltest die folgende Ausgabe sehen:

v1.0.4

Als Nächstes installierst du Caddy mit folgendem Befehl als systemd-Dienst:

caddy -service install

Starte den Caddy-Dienst und aktiviere ihn mit folgendem Befehl, damit er beim Booten startet:

systemctl start caddy
systemctl enable caddy

Als Nächstes überprüfst du den Status des Caddy-Dienstes mit dem folgenden Befehl:

systemctl status caddy

Du solltest die folgende Ausgabe erhalten:

? caddy.service - Caddy's service
   Loaded: loaded (/etc/systemd/system/caddy.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-04-20 05:49:04 UTC; 7s ago
 Main PID: 1722 (caddy)
    Tasks: 10 (limit: 2359)
   CGroup: /system.slice/caddy.service
           ??1722 /usr/local/bin/caddy

Apr 20 05:49:04 ubuntu1804 systemd[1]: Started Caddy's service.
Apr 20 05:49:04 ubuntu1804 caddy[1722]: Activating privacy features... done.
Apr 20 05:49:04 ubuntu1804 caddy[1722]: Serving HTTP on port 2015
Apr 20 05:49:04 ubuntu1804 caddy[1722]: http://:2015

Ein Website-Verzeichnis erstellen

Als Nächstes musst du eine Verzeichnisstruktur und eine Beispiel-Indexdatei für deine Website erstellen.

Erstelle zunächst mit folgendem Befehl ein Dokumentenstammverzeichnis:

mkdir -p /var/www/caddy.linuxbuz.com

Als Nächstes erstellst du eine index.html-Datei mit dem folgenden Befehl:

nano /var/www/caddy.linuxbuz.com/index.html

Füge den folgenden Inhalt hinzu:

<!doctype html>
<head><title>Caddy Sample Page</title></head>
<body>
<h1>Welcome to Caddy web server</h1>
</body>
</html>

Speichere und schließe die Datei, wenn du fertig bist. Gib dem Web-Root-Verzeichnis die richtigen Rechte:

chown -R www-data:www-data /var/www/caddy.linuxbuz.com

Caddy Webserver konfigurieren

Als Nächstes musst du eine Konfigurationsdatei für einen virtuellen Host erstellen, um die Dateien deiner Website ins Internet zu stellen.

Erstelle zunächst ein Verzeichnis, in dem die Konfigurationsdateien von Caddy gespeichert werden:

mkdir -p /etc/caddy

Ändere als Nächstes mit dem folgenden Befehl die Eigentümerschaft von Caddy auf www-data:

chown -R www-data:www-data /etc/caddy

Als Nächstes erstellst du die Hauptkonfigurationsdatei von Caddy mit dem folgenden Befehl:

nano /etc/caddy/Caddyfile

Füge die folgenden Zeilen hinzu:

caddy.linuxbuz.com {
    root /var/www/caddy.linuxbuz.com
}

Speichere und schließe die Datei, wenn du fertig bist. Führe dann den folgenden Befehl aus, um deine Website über HTTPS mit Let’s Encrypt bereitzustellen:

caddy -agree -conf /etc/caddy/Caddyfile -email [email protected]

Du solltest die folgende Ausgabe erhalten:

Activating privacy features... 2020/04/20 05:57:36 [INFO] acme: Registering account for [email protected]
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] acme: Obtaining bundled SAN certificate
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/4067652622
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] acme: Could not find solver for: tls-alpn-01
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] acme: use http-01 solver
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] acme: Trying to solve HTTP-01
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] Served key authentication
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] Served key authentication
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] Served key authentication
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] Served key authentication
2020/04/20 05:57:44 [INFO] [caddy.linuxbuz.com] The server validated our request
2020/04/20 05:57:44 [INFO] [caddy.linuxbuz.com] acme: Validations succeeded; requesting certificates
2020/04/20 05:57:45 [INFO] [caddy.linuxbuz.com] Server responded with a certificate.
done.

Serving HTTPS on port 443 
https://caddy.linuxbuz.com


Serving HTTP on port 80 
http://caddy.linuxbuz.com

Jetzt ist Caddy konfiguriert und mit Let’s Encrypt gesichert. Du kannst nun auf die Caddy-Weboberfläche zugreifen.

Zugriff auf die Caddy-Weboberfläche

Öffne jetzt deinen Webbrowser und gib die URL https://caddy.linuxbuz.com ein. Auf dem folgenden Bildschirm wirst du zur Caddy-Seite weitergeleitet:

Caddy Webserver

Fazit

In diesem Leitfaden haben wir gelernt, wie man eine Website mit einem Caddy-Webserver hostet. Wir haben auch gelernt, wie man sie mit Let’s Encrypt SSL sichert. Ich hoffe, du kannst Caddy jetzt problemlos als alternativen Webserver nutzen.

Das könnte dich auch interessieren …