Homepage ohne Server

In diesem Beitrag geht es darum, was statisches Webhosting bedeutet und unter welchen Voraussetzungen man es machen kann.

TL;DR

  • Statisches Webhosting ist eine Alternative zu CMS.
  • Das Setup erfordert geringe Fachkenntnisse.
  • Viele Vorteile wiegen wenige Nachteile auf.

Wer eine Homepage betreiben möchte, aber den Aufwand für Server-Setup und Wartung scheut, landet oftmals bei einer gehosteten Wordpress-Lösung. Einige Hosting-Dienstleister bieten das als Rundum-Sorglos-Pakt an: Der Dienstleister kümmert sich um die Technik und der Homepage-Betreiber pflegt über eine Web-GUI nur noch Design und Inhalt seiner Homepage. Das ist für einfache Setups keine schlechte Wahl, denn Wordpress ist vergleichsweise einfach zu bedienen und bietet Dank seiner großen Beliebtheit viele Features.

Einen Nachteil gibt es aber: Für kleine Homepages mit nur wenigen Seiten und kaum dynamischen Inhalten wirkt das System auf kostengünstiger Hardware eher träge. Das ist auch nicht verwunderlich, schließlich wird für jede Seite ein kompletter LAMP-Stack (Linux, Apache, MySQL, PHP) bemüht. Wordpress-Plugins können das durch Caching zwar etwas beschleunigen, aber der Overhead eines gewachsenen Content Management Systems bleibt.

Alternative zu Wordpress: Statische Webseiten

Einen anderen Weg gehen Generatoren für statische Seiten (“static site generators”). Sie erzeugen reine HTML-Dateien, die ohne schwergewichtige Interpreter oder SQL-Datenbanken auskommen. Der Vorteil: Ein äußerst geringer Ressourcenbedarf auf Serverseite. Das spart Geld, denn selbst auf schlanken, kostengünstigen Servern wird die Homepage immer noch schnell und performant ausgeliefert.

Ein paar wichtigste Vertreter statischer Generatoren sind:

Pros und Cons statischer Webseiten

Gegenüber Webseiten mit Inhalten, die dynamisch bei jedem Zugriff vom Server generiert werden, haben Generatoren für statische Seiten mehr Vorteile als Nachteile:

Vorteile Nachteil
+ Geschwindigkeit - Keine Echtzeit-Inhalte
+ Kostengünstiger Betrieb
+ Lastspitzen unproblematisch
+ Einfache Inbetriebnahme
+ Robust gegen Attacken

Das Hauptargument gegen statische Seiten, es können keine dynamischen Inhalte generiert werden, ist zunächst einleuchtend. Allerdings lässt sich dieser Nachteil durch dynamische Teil-Inhalte größtenteils wieder ausgleichen. Erstellt man eine statische Webseite, die jeweils nur einzelne Teilbereiche dynamisch mittels asynchroner Anfragen nachlädt, kann man den Nachteil statischer Webseiten ausgleichen.

Der statisch-dynamische Hybride

In Anwendungsfällen, in denen die Datengrundlage einer Webseite über einen gewissen Zeitraum hinweg konstant bleibt, kann der Einsatz von Generatoren für statische Webseiten sehr sinnvoll sein. Die notwendige Zeit für das Erzeugen der statischen Seiten sollte dabei kleiner sein als die kürzeste Lebensdauer der Datengrundlage.

Anwendungsbeispiel:

Eine Webseite zeigt das aktuelle Wetter für Deutschland und eine Vorschau auf die nächsten fünf Tage an. Die aktuellen Wetter-Daten werden stündlich aktualisiert. Der Webseiten-Betreiber erwartet bis zu 1.000 Besucher pro Minute auf seiner Wetter-Webseite.

Lösung:

Die Haupt-Webseite inklusive der Vorschau für die nächsten fünf Tage wird statisch erzeugt und als HTML-Datei (index.html) auf den Server gelegt. Wichtig ist, dass die Erzeugung der statischen Seiten weniger als eine Stunde dauern darf.

In diesem Beispiel erscheint die Aktualisierung der Daten nicht “in Echtzeit”, sondern um die Zeitspanne verzögert, die zwischen dem Eintreffen der neuen Daten und der Fertigstellung der statischen Seiten liegt. In diesem Beispiel hat der Betreiber festgestellt, dass die Erzeugung der statischen Seiten nur 2 Minuten dauert. Er hat sich dafür entschieden, innerhalb von 5 Minuten nach der Lieferung neuer Daten die statischen Seiten neu generieren zu lassen. Die maximale Verzögerung liegt somit bei 7 Minuten.

Ist die Verzögerung nicht akzeptabel oder widerspricht sie der Anwendung per se, bietet es sich an, Echtzeit-Inhalte asynchron per Ajax-Calls in einen statischen Rahmen nachzuladen.

Beispiele für Echtzeit-Inhalte:

  • Warenkorb in Shopsystemen
  • Login-Status des Benutzers
  • Infos zu Reisedaten (Bahn, Flüge)
  • Online-Chats
  • usw.

Kein Server: Kein Problem!

Hat man festgestellt, dass auf der eingene Webseite gar keine dynamischen Echtzeit-Inhalte benötigt werden, ist man eigentlich fein raus. Denn dann braucht man auch nicht zwingend einen Webserver, der dynamische Seiten unterstützt. Ein schlanker Server zur Auslieferung von HTML-Dateien über HTTP bzw. HTTPS reicht in diesem Fall vollkommen aus.

Ein paar Hosting-Anbieter für statische Webseiten:

  • Amazon Web Service (AWS), S3-Buckets
  • Microsoft Azure, Azure Storage
  • Google, Cloud Storage Bucket

Zur Veröffentlichung der statischen Inhalte genügt es, sie auf den jeweiligen Storage zu kopieren. Das geht üblicherweise mit einem FTP-Programm oder rsync bzw. Web-GUIs der Anbieter. Noch eleganter gelingt es, wenn Git als Versionsverwaltung und eine CI/CD-Pipeline zum Deployment der Änderungen eingesetzt wird. Das ist initial etwas mehr Setup-Aufwand, aber damit lassen sich komplexe Workflows für nahezu beliebig große Teams abbilden.

Fazit

Bevor man zu einer Wordpress-Lösung greift, lohnt sich die Überlegung, ob man wirklich hochdynamische Inhalte benötigt. Viele private Homepages, Webseiten von Vereinen und auch die meisten Firmen-Webseiten kommen eigentlich ohne Echtzeit-Dynamik aus. Dann lohnen sich statische Webseiten gleich mehrfach: Sie sind kostengünstiger, sicherer, performanter und skalierbarer als ihre hochdynamischen CMS-Kollegen.

Im Übrigen - Sie haben es bestimmt geahnt - unsere Webseite www.anw.net ist rein statisch. Realisiert mit Hugo und Amazon S3. Wie wir das umgesetzt haben, können Sie im folgenden Beitrag nachlesen.