So erstellen Sie einen einfachen Webserver mit darkhttpd

So erstellen Sie einen einfachen Webserver mit darkhttpd
Ein Foto eines Computerbildschirms, auf dem HTML-Code angezeigt wird.

Darkhttpd ist ein leichter, Single-Binary-Webserver-Daemon für Linux. Er bietet eine einfache „Zero Config“-Methode, um Websites so schnell wie möglich auf Ihrem Server bereitzustellen. Hier zeigen wir Ihnen, wie Sie darkhttpd auf Ubuntu Linux installieren, wie es sich im Vergleich zu gängigen Webservern schlägt und führen Sie durch den Prozess der Erstellung Ihrer ersten Website.

Darkhttpd vs. Apache vs. Nginx

Darkhttpd ist nicht der einzige Webserver, den Sie auf Ihrem Linux-Rechner installieren können. Es gibt Apache, Nginx, Caddy, Lighttpd und viele mehr. In diesem Abschnitt werden wir darkhttpd mit Apache und Nginx vergleichen und uns ansehen, wie es funktioniert.

In puncto Benutzerfreundlichkeit schlägt darkhttpd sowohl Apache als auch Nginx um Längen. Darkhttpd konzentriert sich darauf, alles in einem einzigen Programm zu halten. Das bedeutet, dass Sie Ihre Website teilen können, ohne sich um deren Konfiguration und den Init-Dienst Ihres Systems kümmern zu müssen.

Ein Terminal, das die Hilfeausgabe von darkhttpd anzeigt.

In puncto Sicherheit verwendet darkhttpd ein Chroot für seine Dateien. Es verfügt außerdem über automatische Timeouts für inaktive Verbindungen und grundlegende Protokollierung. Im Vergleich zu Apache und Nginx ist das ein weiter Weg. Beide verfügen über leistungsstarke Filter zur Ratenbegrenzung und Optionen zur Feinabstimmung der HTTP-Header auf ihren Websites.

Die Einfachheit von Darkhttpd macht es auch unflexibel gegenüber individuellen Benutzeranforderungen. Die Entwickler des Programms haben es als schnelle Möglichkeit konzipiert, statische Webinhalte bereitzustellen. Das bedeutet, dass darkhttpd im Vergleich zu Apache und Nginx keine CGI-Skripte ausführen oder als Reverse-Proxy für Ihre Apps fungieren kann.

Ein Terminal, das eine Beispielkonfiguration eines Reverse-Proxys für Nginx zeigt.
Kategorie dunkelhttpd Apache Nginx
Benutzerfreundlichkeit Erfordert keine zusätzliche Konfiguration zum Hosten von Websites. Damit es funktioniert, sind sowohl eine system- als auch eine standortspezifische Konfiguration erforderlich. Zum Funktionieren ist eine standortspezifische Konfiguration erforderlich.
Allgemeine Sicherheit Wird mit grundlegenden Chroot- und Protokollierungsfunktionen geliefert. Kommt mit Ratenbegrenzern und sicherheitsorientierten HTTP-Headern. Kommt mit Ratenbegrenzern und sicherheitsorientierten HTTP-Headern.
SSL-Unterstützung Keine integrierte SSL-Unterstützung. Wird mit „mod_ssl“ für SSL-Unterstützung geliefert. Mit integrierter SSL-Unterstützung.
Anwendungsflexibilität Kann nur mit statischen Webinhalten arbeiten. Kann sowohl mit statischen als auch mit dynamischen Webinhalten arbeiten. Kann als Webserver, Lastenausgleich und Reverseproxy fungieren.

Vorbereiten Ihres Systems für darkhttpd

Der erste Schritt zum Erstellen einer Website mit darkhttpd in Ubuntu Linux besteht darin, die Abhängigkeiten für Docker und Docker Compose zu erhalten.

Laden Sie zunächst den Signaturschlüssel für das Docker-Projekt herunter:

Verwenden Sie Ihren bevorzugten Texteditor, um eine neue Repository-Datei zu erstellen:

Fügen Sie die folgende Codezeile in Ihre Repository-Datei ein:

Laden Sie die Paket-Repositories Ihres Computers neu und aktualisieren Sie Ihr gesamtes System:

Installieren Sie Docker, das Compose-Plugin und Git mit apt:

Ein Terminal, das den Installationsprozess für Docker, seine Plugins und Git zeigt.

Installieren und Ausführen von darkhttpd

Gehen Sie zu Ihrem Home-Verzeichnis und ziehen Sie dann die neueste Version von darkhttpd auf Ihr System:

Gehen Sie zum Inneren des Git-Repositorys und erstellen Sie dann mit Ihrem bevorzugten Texteditor eine neue Docker Compose-Datei:

Fügen Sie den folgenden Codeblock in Ihre Compose-Datei ein:

Speichern Sie Ihre neue Compose-Datei und führen Sie dann den folgenden Befehl aus, um Ihren darkhttpd-Docker-Container zu erstellen und auszuführen:

Erstellen Sie einen „html“-Ordner im darkhttpd-Linux-Repository und kopieren Sie dann Ihre statischen Website-Dateien dorthin:

Bestätigen Sie, dass darkhttpd ordnungsgemäß ausgeführt wird, indem Sie die im System verfügbaren Container auflisten:

Ein Terminal, das den im System laufenden Docker-Container darkhttpd zeigt.

Darkhttpd über SSL mit Stunnel ausführen

An diesem Punkt verfügen Sie nun über einen laufenden Darkhttpd-Server an Port 8080. Um jedoch über das Internet darauf zuzugreifen, müssen Sie ihn zunächst über einen Reverse-Proxy in SSL kapseln.

Erstellen Sie zunächst einen neuen DNS-A-Eintrag für Ihre Domain, der auf die IPv4-Adresse Ihres Darkhttpd verweist. In meinem Fall werde ich die IPv4-Adresse meines Computers auf den Eintrag „web.myvpsserver.top“ verweisen lassen.

Holen Sie sich stunnel, das „Core“-Snap-Paket und Certbot und installieren Sie es auf Ihrem Computer:

Registrieren Sie Ihre darkhttpd-Instanz bei der Electronic Frontier Foundation:

Generieren Sie ein einfaches SSL-Zertifikat für Ihren Domänennamen:

Ein Terminal, das den Prozess der SSL-Zertifikatsgenerierung in LetsEncrypt zeigt.

Erstellen Sie eine neue Konfigurationsdatei für Ihren Stunnel-Reverse-Proxy:

Fügen Sie den folgenden Codeblock in Ihre neue Konfigurationsdatei ein:

Speichern Sie Ihre neue Konfigurationsdatei und führen Sie dann den folgenden Befehl aus, um den Reverse-Proxy zu starten:

Ein Terminal, das den aktuellen Status des Stunnel-Dienstes im System anzeigt.

Bestätigen Sie, dass Ihre statische Website jetzt ordnungsgemäß funktioniert, indem Sie Ihre Subdomäne in einem Webbrowser öffnen.

Ein Screenshot, der die Beispielwebsite zeigt, die auf darkhttpd mit SSL läuft.

Das Hosten Ihrer eigenen einfachen Website mit darkhttpd ist nur der erste Schritt bei der Erkundung der wunderbaren Welt der selbst gehosteten Webdienste. Erfahren Sie, wie Sie mit RSS-Bridge RSS-Feeds für Ihre sozialen Medien erstellen können.

Bildnachweis: Ilya Pavlov via Unsplash . Alle Änderungen und Screenshots von Ramces Red.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert