So hosten Sie eine Website mit HTTPS unter Verwendung von Caddy unter Linux

A web server is a server-side application designed to process HTTP requests between client and server. HTTP is the basic and very widely used network protocol.

Der Apache HTTP Server spielte eine wichtige Rolle bei der Gestaltung dessen, was das Web heute ist. Er allein hat einen Marktanteil von 37,3%. Nginx belegt den zweiten Platz in der Liste mit einem Marktanteil von 32,4%. Microsoft IIS und LiteSpeed liegen auf den Plätzen 3 und 4 mit einem Marktanteil von 7,8% bzw. 6,9%.

Kürzlich bin ich auf einen Webserver namens Caddy gestoßen. Als ich mich nach seinen Funktionen erkundigte und ihn zum Testen bereitstellte, muss ich sagen, dass er erstaunlich ist. Ein Webserver, der portabel ist und keine Konfigurationsdatei benötigt. Ich dachte, es ist ein sehr cooles Projekt und wollte es mit Ihnen teilen. Hier haben wir Caddy ausprobiert!

Was ist Caddy?

Caddy ist eine Alternative zu einem Apache-Webserver mit einfacher Konfiguration und Nutzung. Matthew Holt, der Projektleiter von Caddy, behauptet, dass Caddy ein Webserver für den allgemeinen Gebrauch ist, der für Menschen entwickelt wurde und wahrscheinlich der einzige seiner Art ist.

Caddy ist der einzige erste Webserver, der automatisch SSL/TLS-Zertifikate von Let’s Encrypt beziehen und erneuern kann.

Funktionen von Caddy

  1. Schnelle HTTP-Anfragen mit HTTP/2.
  2. Fähiger Webserver mit geringster Konfiguration und problemloser Bereitstellung.
  3. TLS-Verschlüsselung gewährleistet eine Verschlüsselung zwischen kommunizierenden Anwendungen und Benutzern über das Internet. Sie können Ihre eigenen Schlüssel und Zertifikate verwenden.
  4. Einfach bereitzustellen/nutzen. Nur eine einzige Datei und keine Abhängigkeit von einer Plattform.
  5. Keine Installation erforderlich.
  6. Portable Executables.
  7. Ausführung auf mehreren CPUs/Kernen.
  8. Erweiterte WebSockets-Technologie – Interaktive Kommunikationssitzung zwischen Browser und Server.
  9. Server Markdown-Dokumente auf Abruf.
  10. Vollständige Unterstützung für das neueste IPv6.
  11. Erstellt eine Protokolldatei in einem benutzerdefinierten Format.
  12. Dient FastCGI, Reverse Proxy, Rewrite und Redirects, Clean URL, Gzip-Komprimierung, Verzeichnis-Browsing, Virtuelle Hosts und Header.
  13. Verfügbar für alle bekannten Plattformen – Windows, Linux, BSD, Mac, Android.

Was macht Caddy anders?

  1. Caddy zielt darauf ab, das Web so zu bedienen, wie es im Jahr 2020 sein sollte und nicht im traditionellen Stil.
  2. Es ist so konzipiert, nicht nur HTTP-Anfragen zu bedienen, sondern auch Menschen.
  3. Geladen mit den neuesten Funktionen – HTTP/2, IPv6, Markdown, WebSockets, FastCGI, Vorlagen und anderen Out-of-the-Box-Funktionen.
  4. Führen Sie die ausführbaren Dateien ohne Installation aus.
  5. Detaillierte Dokumentation mit der geringsten technischen Beschreibung.
  6. Entwickelt unter Berücksichtigung der Bedürfnisse und der Benutzerfreundlichkeit von Designern, Entwicklern und Bloggern.
  7. Unterstützung für Virtuelle Hosts – Definieren Sie so viele Websites, wie Sie möchten.
  8. Passend für Sie – egal, ob Ihre Website statisch oder dynamisch ist. Wenn Sie ein Mensch sind, ist es für Sie.
  9. Sie konzentrieren sich darauf, was Sie erreichen möchten, und nicht darauf, wie Sie es erreichen.
  10. Verfügbarkeit von Unterstützung für die meisten Plattformen – Windows, Linux, Mac, Android, BSD.
  11. Normalerweise haben Sie eine Caddy-Datei pro Website.
  12. In weniger als 1 Minute einrichten, auch wenn Sie nicht besonders computerfreundlich sind.
Testumgebung

I will be testing it on the CentOS server, as well as Debian Server, but the same instructions also work on RHEL and Debian based distributions. For both the server I am going to use 64-bit executables.

Operating Systems: CentOS 8 and Debian 10 Buster
Caddy Version: v2.0.0

Installation des Caddy-Web-Servers unter Linux

Unabhängig davon, auf welcher Plattform Sie sich befinden und welche Art von Architektur Sie verwenden, bietet Caddy fertige Binärpakete, die mithilfe Ihres Standard-Paketmanagers installiert werden können, wie gezeigt.

Installieren Sie Caddy in Fedora, RedHat, CentOS

Wir werden die neueste Version des Caddy-Webservers aus dem CORP-Repository unter Fedora oder RHEL/CentOS 8 installieren.

# dnf install 'dnf-command(copr)'
# dnf copr enable @caddy/caddy
# dnf install caddy

Auf RHEL/CentOS 7 verwenden Sie die folgenden Befehle.

# yum install yum-plugin-copr
# yum copr enable @caddy/caddy
# yum install caddy

Installieren Sie Caddy in Debian und Ubuntu

$ echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
    | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
$ sudo apt update
$ sudo apt install caddy

Nach der Installation des Caddy-Webservers können Sie den Dienst mit den folgenden systemctl-Befehlen starten, aktivieren und den Status überprüfen.

# systemctl start caddy
# systemctl enable caddy
# systemctl status caddy

Öffnen Sie nun Ihren Browser und richten Sie ihn auf die folgende Adresse, um die Caddy-Startseite anzuzeigen.

http://Server-IP
OR
http://yourdomain.com
Caddy Web Server

Domains mit Caddy einrichten

Um eine Domain einzurichten, müssen Sie zunächst die A/AAAA-DNS-Einträge Ihrer Domain auf diesen Server in Ihrem DNS-Bedienfeld verweisen. Erstellen Sie dann ein Dokumentwurzelverzeichnis für Ihre Website "example.com" im Ordner /var/www/html, wie gezeigt.

$ mkdir /var/www/html/example.com

Wenn Sie SELinux verwenden, müssen Sie den Dateisicherheitskontext für Webinhalte ändern.Öffnen und bearbeiten Sie nun die Caddy-Konfigurationsdatei unter /etc/caddy/Caddyfile.

# chcon -t httpd_sys_content_t /var/www/html/example.com -R
# chcon -t httpd_sys_rw_content_t /var/www/html/example.com -R

Öffnen Sie jetzt die Caddy-Konfigurationsdatei unter /etc/caddy/Caddyfile.

# vim /etc/caddy/Caddyfile

Ersetzen Sie :80 durch Ihren Domainnamen und ändern Sie den Seitenstamm auf /var/www/html/example.com wie gezeigt.

Configure Caddy Web Server

Starten Sie den Caddy-Dienst neu, um die Konfigurationsänderung zu speichern.

# systemctl reload caddy

Erstellen Sie nun eine beliebige HTML-Seite (Sie können Ihre eigene erstellen) und speichern Sie die Seite im Dokumentstammverzeichnis Ihrer Website.

# touch /var/www/html/example.com/index.html

Fügen Sie den folgenden Beispiel-Html-Code auf Ihrer Website-Indexseite hinzu.

# echo '<!doctype html><head><title>Caddy Test Page at TecMint</title></head><body><h1>Hello, World!</h1></body></html>' | sudo tee /var/www/html/index.html

Besuchen Sie nun erneut Ihre Website, um Ihre Seite zu sehen.

Hosting Website with Caddy

Wenn alles korrekt konfiguriert ist, wird Ihre Domain über ein HTTPS-Protokoll bedient, was darauf hinweist, dass Ihre Verbindung sicher ist.

Fazit

Wenn Sie neu sind und einen Webserver einrichten möchten, ohne sich mit der Konfiguration die Hände schmutzig zu machen, ist dieses Tool für Sie. Selbst wenn Sie ein erfahrener Benutzer sind, der einen schnellen und einfachen Webserver benötigt, ist Caddy einen Versuch wert. Mit wenig Konfiguration können Sie auch Ordnerberechtigungen festlegen, die Authentifizierung steuern, Fehlerseiten, Gzip, HTTP-Weiterleitung und andere einrichten, wenn Sie einen komplexeren und fortgeschritteneren Webserver einrichten müssen.

Nehmen Sie Caddy nicht als Ersatz für Apache oder Nginx. Caddy ist nicht für den Einsatz in Umgebungen mit hohem Traffic ausgelegt. Es wurde für eine schnelle Webserver-Einrichtung entwickelt, wenn Geschwindigkeit und Zuverlässigkeit im Vordergrund stehen.

Referenzen

Vollständige Benutzeranleitung / Vollständige Dokumentation des Caddy-Web-Servers

Wir haben diese Dokumentation mit dem Ziel einer schnellen Überprüfung und Installationsanweisungen mit Bildern, wo immer erforderlich, erstellt. Wenn Sie auf Vor- und Nachteile des Projekts oder irgendwelche Vorschläge stoßen, können Sie diese in unserem Kommentarbereich hinterlassen.

Für mich ist dieses Projekt noch zu jung, funktioniert aber einwandfrei und scheint leistungsstark und vielversprechend zu sein. Der größte Pluspunkt, den ich sehe, ist, dass Caddy seine Konfigurationsdatei nicht überallhin mitnehmen muss. Es zielt darauf ab, das Beste von Nginx, Lighttpd, Vagrant und Websocketd zu bieten. Das ist alles von meiner Seite. Bleiben Sie mit Tecmint verbunden. Kudos

Source:
https://www.tecmint.com/install-caddy-web-server-in-centos-ubuntu/