Lighttpd ist ein Open-Source-Webserver, der für seine hervorragende Leistung in vielen Umgebungen bekannt ist. Dank der geringen Hardwareanforderungen bewältigt es hohen Datenverkehr auch auf leistungsschwachen Systemen.
Dieses Tutorial erklärt Schritt für Schritt, wie man Lighttpd unter Ubuntu 18.04 installiert und konfiguriert und wie man seine Leistung maximiert, indem man die Datenkomprimierung aktiviert, einen virtuellen Host konfiguriert und Keep-Alive-Parameter verbessert.
Verbinden Sie sich zunächst über eine SSH-Verbindung mit Ihrem Server. Wenn Sie dies noch nicht getan haben, wird empfohlen, unseren Leitfaden zu befolgen, um sich sicher mit SSH zu verbinden. Im Falle eines lokalen Servers gehen Sie zum nächsten Schritt und öffnen Sie das Terminal Ihres Servers.
Installation von Lighttpd
Aktualisieren Sie zuerst die Distributions-Repositories, um sicherzustellen, dass Sie die neueste Version von Lighttpd herunterladen:
$ sudo apt update
Fahren Sie dann mit der Installation fort, indem Sie den folgenden Befehl ausführen:
$ sudo apt install lighttpd
Sobald die Installation abgeschlossen ist, kann der Lighttpd-Dienst aktiviert und gestartet werden, aber zuerst kann es notwendig sein, Lighttpd für das Abhören auch auf IPv4-Adressen zu aktivieren.
Öffnen Sie die Konfigurationsdatei in /etc/lighttpd/lighttpd.conf mit Ihrem bevorzugten Texteditor (vim / nano).
Ein kommentierter Abschnitt, der die Verwendung der Ports konfiguriert, befindet sich in der Datei:
##
## bind to a specific IP
##
server.bind = "localhost"
Fahren Sie dann fort, indem Sie es wie folgt bearbeiten:
##
## bind to a specific IP
##
#
server.bind = "localhost"
$SERVER["socket"] == "0.0.0.0" { }
Zu diesem Zeitpunkt ist alles bereit, um den Dienst zu starten:
$ sudo systemctl start lighttpd
Der Dienst kann auch so eingestellt werden, dass er beim Systemstart automatisch gestartet wird:
$ sudo systemctl enable lighttpd
Firewall-Konfiguration
Falls eine Firewall auf Ihrem System vorhanden ist, richten Sie diese so ein, dass HTTP-Verkehr und HTTPS-Verkehr zu Ihrem Computer zugelassen werden.
Um HTTP- (Port 80) und HTTPS- (Port 443) Datenverkehr zuzulassen, verwenden Sie die folgenden Befehle:
$ sudo ufw allow 80
$ sudo ufw allow 443
Sobald alle Schritte abgeschlossen sind, testen Sie den Betrieb des Webservers, indem Sie die Adresse http://
Dokumentenstamm
Um die sichtbaren Inhalte auf dem Webserver zu ändern, ändern Sie einfach den Inhalt des Ordners /var/www/lighttpd, wie es auch in der Konfigurationsdatei /var/etc/lighttpd.conf angegeben ist:
var.server_root = "/var/www"
##
## Document root
##
server.document-root = server_root + "/lighttpd"
Weitere Informationen zur Konfigurationsdatei, alle verfügbaren Optionen finden Sie in den offiziellen Dokumenten:https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ConfigurationOptions .
Aktivierung der Datenkomprimierung
Eine der ersten Optimierungen, die auf Lighttpd aktiviert werden können, ist die Datenkomprimierung vor dem Senden. Dadurch wird der Bandbreitenverbrauch Ihres Webservers reduziert und die Datenübertragung beschleunigt.
Um die Komprimierung zu aktivieren, öffnen Sie die Datei im Pfad /etc/lighttpd/modules.conf.
Sie werden den Abschnitt finden, der dem Modul mod_compress gewidmet ist:
##
## mod_compress
##
#include "conf.d/compress.conf"
Entkommentieren Sie einfach die Einschlusszeile, um die Modulkonfigurationsdatei zu lesen, und aktivieren Sie sie dann:
##
## mod_compress
##
include "conf.d/compress.conf"
Bevor Sie das Modul betreiben, erstellen Sie den Ordner, in dem Lighttpd normalerweise die komprimierten Dateien speichert. um sie später nicht neu zu generieren:
$ sudo mkdir /var/cache/lighttpd
$ sudo mkdir /var/cache/lighttpd/compress
Ändern Sie nun den Eigentümer des Ordners, um Lighttpd Berechtigungen zu erteilen:
$ sudo chown lighttpd:lighttpd /var/cache/lighttpd/compress/
Starten Sie an dieser Stelle den Dienst neu:
$ sudo systemctl restart lighttpd
Installation eines virtuellen Hosts
Im Folgenden wird erklärt, wie man einen virtuellen Host am Beispiel einer Fantasy-Domain (ihredomain.com) konfiguriert. Bereiten Sie zunächst die erforderlichen Verzeichnisse vor, um die Website zu hosten:
mkdir -p /var/www/vhosts/yourdomain.com/htdocs
chown lighttpd:lighttpd /var/www/vhosts -R
Mit den oben gezeigten Befehlen kann der gesamte Verzeichnisbaum erstellt werden. Legen Sie nun den Lighttpd-Benutzer als Eigentümer der Ordner fest.
Normalerweise ist Lighttpd nicht aktiviert, um Konfigurationen virtueller Hosts zu lesen. Fahren Sie also mit der Aktivierung fort, indem Sie den unten angegebenen Abschnitt in der Datei /etc/lighttpd/lighttpd.conf ändern:
#######################################################################
##
## custom includes like vhosts.
##
#include "conf.d/config.conf"
include "/etc/lighttpd/vhosts.d/*.conf" #enable the virtual host reading
##
######################################################################
Jetzt kann eine spezifische Datei für Ihre Domain in /etc/lighttpd/vhosts.d/yourdomain_en.conf erstellt werden:
$HTTP["host"] == "yourdomain.com" {
var.server_name = "yourdomain.com"
server.name = server_name
server.document-root = vhosts_dir + "/" + server_name + "/htdocs"
##
## use a separate access log file
## At the moment, you cannot have different error log files.
##
accesslog.filename = log_root + "/" + server_name + "/access.log"
}
Sobald die Datei gespeichert ist, starten Sie Lighttpd neu, um alle Änderungen zu übernehmen:
$ sudo systemctl restart lighttpd
Keep-Alive-Optimierung
Die Verbesserung der HTTP-Keep-Alive-Parameter kann sich positiv auf das Verkehrsmanagement auswirken und kann daher für eine weitere Optimierung der Leistung von Lighttpd nützlich sein. Die Standardparameter des Servers sind die folgenden (in der Datei / etc/lighttpd/lighttpd.conf):
server.max-keep-alive-idle = 5
server.max-keep-alive-requests = 16
server.max-read-idle = 60
server.max-fds = 2048
server.max-write-idle = 360
Die obigen Parameter halten 16 Verbindungen für 5 Sekunden aktiv, auch wenn sie möglicherweise nicht mehr von Clients verwendet werden. Dies könnte zu einer Erschöpfung der gleichzeitig geöffneten Sockets führen (angezeigt als Maximalwert in server.max-fds). Bei hohem Datenverkehr kann es erforderlich sein, diese Limits einzuschränken:
server.max-keep-alive-idle = 4
server.max-keep-alive-requests = 4
server.max-read-idle = 30
server.max-write-idle = 120
Durch die Begrenzung des Zeitlimits und der Anzahl der Anfragen schließt der Webserver die Verbindungen häufiger und ermöglicht die Verwaltung eines höheren Datenverkehrs.
Sobald die Änderungen übernommen wurden, denken Sie daran, den Dienst neu zu starten über:
$ sudo systemctl restart lighttpd