Same/Simple Content for Multiple/Many Domains
Der Webserver ist für das Hosting von vielen Domains konzipiert. Dabei soll
überall der gleiche Inhalt ausgeliefert werden. Diese Inhalte bestehen aus
einer Eingangsseite (index.html), einem Favoriten-Icon (favicon.ico),
CSS-Formatierungen (style.css) einer robots.txt, die von Suchmaschinen
ausgewertet wird, sowie einer security.txt nach RFC 9116.
Der Webserver antwortet nur für Servernamen, die in der Datei
/data/vhosts.conf gefunden werden. So wird verhindert, dass beliebige, dritte
Domains einen DNS-Namen mit der IP-Adresse des Servers propagieren. Es wird
HTTP und HTTPS unterstützt. Zertifikate werden von der CA Let's Encrypt
dynamisch bezogen und aktualisiert.
Neben dem Ausliefern von statischen Inhalten unterstützt der Webserver
HTTP-Redirects. Der Modus wird pro Eintrag in der Datei vhosts.conf aktiviert,
wenn dort das Ziel als 2. Wert hinter einem Hostnamen angegeben wird.
-
--certificate_dir=<path>Verzeichnis, in dem der Server TLS-Zertifikate dauerhaft speichern kann.
-
--stagingDer Server benutzt die 'staging' Umgebung von Let's Encrypt.
-
--acmeEndpoint=<acme-directory-url>Statt Let's Encrypt kann hier eine andere ACME-Instanz konfiguriert werden. In diesem Fall ist die Option
--stagingbelanglos. -
--datadir=<path>Die Dateien
vhosts.conf,index.html,favicon.ico,style.cssundrobots.txtwerden im Verzeichnis/datagesucht, wenn nicht mit--datadirein alternativer Pfad angegeben wird.
-
vhosts.confListe mit Hostnamen, für die der Webserver Inhalte liefert. Format: ein Name pro Zeile, kein abschließender Punkt. Optional kann als 2. Wert ein Weiterleitungsziel angegeben werden.
Beispiel:
example example.org https://example.net/foo
Mit diesen Einträgen beantwortet der Service Anfragen für
http://www.examplemit einem Redirect nachhttps://www.examplehttps://www.examplemit einem Redirect nachhttps://examplehttp://examplemit einem Redirect nachhttps://examplehttps://examplemit Inhalten (index.html, ...)http://www.example.orgmit einem Redirect nachhttps://www.example.orghttps://www.example.orgmit einem Redirect nachhttps://example.net/foohttp://example.orgmit einem Redirect nachhttps://example.orghttps://example.orgmit einem Redirect nachhttps://example.net/foo
Wird die Datei geändert, muss der Server neu gestartet werden. Hostnamen (Spalte 1) werden beim Start des Servers in Kleinbuchstaben konvertiert.
-
index.htmlHTML-Seite, die beim Aufruf der URL
/(und/index.html) ausgegeben wird. -
robots.txtText-Datei, die beim Aufruf der URL
/robots.txtausgegeben wird. -
favicon.icoIcon-Datei, die beim Aufruf der URL
/favicon.icoausgegeben wird. -
style.cssCSS-Datei, die beim Aufruf der URL
/style.cssausgegeben wird. -
security.txt"vulnerability disclosure information", die beim Aufruf der URL
/.well-known/security.txtausgegeben wird. Die Datei sollte inhaltlich RFC 9116 entspechen.
Werden die genannten URLs per HTTP aufgerufen, erfolgt ein permanenter Redirect auf die entsprechende HTTPS-URL.
Alle anderen URLs werden mit 404 Not Found beantwortet.
HTTP-Anfragen an den Server mit einem Hostnamen, der nicht in vhosts.conf
konfiguriert ist, werden mit 400 Bad Request
beantwortet; bei HTTPS-Anfragen kommt keine TLS-Verbindung zustande.
Anfragen werden auf STDOUT geloggt. Das Format entspricht weitgehend dem
combined Logformat eines NGINX Webservers.
Ausnahmen:
-
an 3. Stelle wird anstatt
$remote_userder Hostname$hostgeloggt. -
an 7. Stelle wird die Anzahl der Antwortbytes (
$body_bytes_sent) immer mit 42 geloggt. -
bei HTTPS-Anfragen werden nach dem User-Agent TLS-Version sowie TLS-Cipher im Format "tlsversion=... tlscipher=..." ausgegeben.