So erstellen Sie einen einfachen Webserver mit darkhttpd
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.
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.
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. |
Gut zu wissen: Erfahren Sie, wie Daten im Internet verschlüsselt werden, indem Sie mit OpenSSL selbstsignierte SSL-Zertifikate generieren.
Vorbereiten Ihres Systems für darkhttpd
Notiz: Dieses Tutorial wurde auf einem Ubuntu 24.04 VPS mit mindestens 512 MB RAM durchgeführt. Die Anweisungen funktionieren auch in den meisten Linux-Distributionen.
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.
Notiz: Im Folgenden wird Docker für Ubuntu-basierte Systeme installiert. Wenn Sie von einer anderen Distribution kommen, lesen Sie unsere allgemeine Anleitung zur Installation von Docker unter Linux.
Laden Sie zunächst den Signaturschlüssel für das Docker-Projekt herunter:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpgVerwenden Sie Ihren bevorzugten Texteditor, um eine neue Repository-Datei zu erstellen:
sudo nano /etc/apt/sources.list.d/docker.listFügen Sie die folgende Codezeile in Ihre Repository-Datei ein:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stabilLaden Sie die Paket-Repositories Ihres Computers neu und aktualisieren Sie Ihr gesamtes System:
sudo apt update und sudo apt upgradeInstallieren Sie Docker, das Compose-Plugin und Git mit apt:
sudo apt installiere docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin gitInstallieren und Ausführen von darkhttpd
Gehen Sie zu Ihrem Home-Verzeichnis und ziehen Sie dann die neueste Version von darkhttpd auf Ihr System:
cd ~ && git clone https://github.com/emikulic/darkhttpd.gitGehen Sie zum Inneren des Git-Repositorys und erstellen Sie dann mit Ihrem bevorzugten Texteditor eine neue Docker Compose-Datei:
cd darkhttpd && nano ./docker-compose.ymlFügen Sie den folgenden Codeblock in Ihre Compose-Datei ein:
Dienste: darkhttpd: Containername: darkhttpd-Website-Build: Kontext: . Dockerfile: Dockerfile-Volumes: – „./html:/var/www/htdocs:ro“ Ports: – „8080:80“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:
sudo docker komponieren -dErstellen Sie einen „html“-Ordner im darkhttpd-Linux-Repository und kopieren Sie dann Ihre statischen Website-Dateien dorthin:
mkdir ./html/ cp -rv ~/meine-website ./html/Bestätigen Sie, dass darkhttpd ordnungsgemäß ausgeführt wird, indem Sie die im System verfügbaren Container auflisten:
Als Randnotiz: Erfahren Sie, wie Sie Ihre vorhandenen Docker-Container auf einen neuen Systemhost verschieben können.
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:
sudo apt installiere stunnel4 sudo snap installiere core und sudo snap installiere certbot --classicWenn Sie Fedora verwenden, können Sie den folgenden Befehl ausführen, um Stunnel und Certbot zu installieren:
sudo dnf installiere stunnel certbotRegistrieren Sie Ihre darkhttpd-Instanz bei der Electronic Frontier Foundation:
sudo certbot register --agree-tos -m IHRE-EMAIL@ADRESSE.HIERGenerieren Sie ein einfaches SSL-Zertifikat für Ihren Domänennamen:
sudo certbot certonly --standalone -d SUBDOMAIN.IHRE-DOMAIN.ROOTErstellen Sie eine neue Konfigurationsdatei für Ihren Stunnel-Reverse-Proxy:
sudo nano /etc/stunnel/stunnel.confFügen Sie den folgenden Codeblock in Ihre neue Konfigurationsdatei ein:
Ausgabe = /var/log/stunnel4/stunnel.log Zertifikat = /etc/letsencrypt/live/SUBDOMAIN.IHRE-ROOT.DOMAIN/fullchain.pem Schlüssel = /etc/letsencrypt/live/SUBDOMAIN.IHRE-ROOT.DOMAIN/privkey.pem[https]
Client = nein Akzeptieren = 443 Verbinden = 8080Speichern Sie Ihre neue Konfigurationsdatei und führen Sie dann den folgenden Befehl aus, um den Reverse-Proxy zu starten:
sudo systemctl starte stunnel4.serviceIn Fedora können Sie stattdessen den folgenden Befehl ausführen, um Ihren Stunnel-Reverse-Proxy zu starten:
sudo systemctl starte stunnel.serviceBestätigen Sie, dass Ihre statische Website jetzt ordnungsgemäß funktioniert, indem Sie Ihre Subdomäne in einem Webbrowser öffnen.
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.
Ilya Pavlov über Unsplash. Alle Änderungen und Screenshots von Ramces Red.
Schreibe einen Kommentar