Der einfache Webserver

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Vorarbeiten

mkdir /srv/www
chmod 755 /srv/www

Service Datei

vi /etc/systemd/system/simple-http.service
[Unit]
Description=My Miscellaneous Service
After=network.target

[Service]
Type=simple
WorkingDirectory=/srv/www
ExecStart=/bin/python3 -m http.server 80
Restart=on-abort

[Install]
WantedBy=multi-user.target

Handling

Änderungen laden
systemctl daemon-reload
Starten des Dienstes
systemctl start simple-http.service
Aktivieren des Dienstes beim Neustart des Systems
systemctl enable simple-http.service
Status anzeigen
systemctl status simple-http.service
Systemd Logs
journalctl -fu simple-http.service
GET-Requests aus den Logs ausblenden
journalctl -fu simple-http.service | grep -v '"GET'
Nur Fehler anzeigen
journalctl -fu simple-http.service -p err
Kontrolle ob der Port geöffnet ist
ss -lntp | grep :80

Erklärung

[Unit]
  • Description=My Miscellaneous Service

Eine Beschreibung des Dienstes, die bei systemctl status angezeigt wird.

  • After=network.target

Gibt an, dass dieser Dienst erst gestartet wird, nachdem das Netzwerksystem gestartet wurde.

[Service]
  • Type=simple

Systemd behandelt den gestarteten Prozess direkt als Hauptprozess. Der Dienst gilt als aktiv, sobald ExecStart läuft – kein Forking.

  • User=www-data

Der Dienst wird unter dem unprivilegierten Benutzer www-data ausgeführt.

  • WorkingDirectory=/srv/www

Das Arbeitsverzeichnis des Dienstes. Python's http.server liefert Dateien aus diesem Verzeichnis aus.

  • ExecStart=/bin/python3 -m http.server 80

Der Befehl, der den Dienst startet. Python3 startet einen einfachen HTTP-Server auf Port 80.

  • Restart=on-abort

Der Dienst wird neu gestartet, wenn er unerwartet beendet wird (z.B. durch einen Absturz).

[Install]
  • WantedBy=multi-user.target

Der Dienst wird im Mehrbenutzermodus ohne grafische Benutzeroberfläche gestartet, was dem normalen Serverbetrieb entspricht.

Zusammenfassung

Die Datei definiert einen systemd-Dienst, der einen einfachen HTTP-Server startet und Dateien aus /srv/www ausliefert. Der Dienst wird nach dem Netzwerk gestartet, läuft unter dem unprivilegierten Benutzer www-data und wird bei einem Absturz automatisch neu gestartet.