Performance, Performance, Performance!

Im Auftrag unseres Kunden Zeughaus realisierten wir den Webauftritt serafina.cc. Dafür verwendeten wir das von uns in ein CMS verwandelte WordPress. serafina.cc kommt in drei Sprachen und benötigte deswegen auch unsere Portalerweiterung.

Das Hosting wurde dabei von Antiloop übernommen, welcher seinen Hosting über einen Nginx-Webserver betreibt. nginx hat innerhalb von 5 Jahren 13% an Marktanteil (!) gewonnen und ist eine spannende Alternative zu Apache. Denn nginx ist nicht nur unglaublich schnell, sondern auch noch toll zu handhaben.

Apache

Wenn ein Kunde ein Apache Hosting bestellt, wird zuerst eine .conf Datei erweitert bzw. angelegt. Diese beinhaltet alle Informationen über den “VirtualHost”. Dieser bestimmt den Pfad zum Webverzeichnis und den Domain-Namen. Zusätzlich können darin alle Einschränkungen für sämtliche Module (PHP, PERL etc.) definiert werden. Wenn es das Hosting erlaubt, wird in dieser .conf Datei das Überschreiben bzw. Erweitern mancher Einstellungen erlaubt. Dies geschieht mit der .htaccess Datei, welche sich meist auf der obersten Ebene des Webverzeichnisses befindet. Wenn ein Unterverzeichnis spezielle Einstellungen benötigt (zb. den Zugriff sperren), muss in diesem Verzeichnis ebenfalls eine .htaccess Datei angelegt werden.

Das Editieren erfolgt recht simpel über einen Editor und kann ohne Neustart des Servers angewendet werden. Wenn eine falsche Konfiguration vorliegt, erscheint die mächtige wie auch nicht vielsagende Meldung “Internal Server Error“.

Vorteil:

  • Mit einem Marktanteil von 55% ist Apache sehr ausgereift, stabil und vor allem auch gut dokumentiert (inkl. großer Community Support)
  • Der Kunde kann mit der .htaccess Datei selbst Hand anlegen und seine Umgebung je nach Anspruch verändern.
  • Bei Änderungen wird kein Neustart des Servers benötigt

Nachteil:

  • Die Konfiguration der .htaccess klappt oder klappt nicht. Eine Fehleranalyse gibt es für den Kunden selbst nicht.
  • High-Traffic-Seiten bzw. komplexe Seiten kämpfen mit Apache relativ schnell mit Performance-Problemen.

 

ngnix

Bei ngnix werden alle Informationen ebenfalls über eine .conf Datei definiert. Diese befindet sich wie bei Apache geschützt ausserhalb des Webverzeichnis. Die Konfiguration ist im Vergleich mit der .conf Datei von Apache im Aufbau ähnlich (Siehe Titelbild).

Nun ist es bei ngnix aber leider (noch) nicht möglich, gewisse Einstellungen (redirects und rewrites, welche wir für unser Portal benötigen) selbst vorzunehmen, da die .conf Datei geschützt ausserhalb des Webverzeichnisses liegt. Diese müssen in diesem Fall vom Provider übernommen werden. Dieser Vorgang ist bei einem großen Shared Hosting noch nicht tragbar, da bei mehreren tausend Kunden der Verwaltungsaufwand sehr hoch wäre. In unserem Fall haben wir von Antiloop eigene SSH Zugangsdaten bekommen und konnten die Einstellungen somit selbst vornehmen.

Ein Vorteil der ngnix Konfiguration ist, dass die Veränderungen mit ngnix selbst geprüft werden können, bevor die Konfiguration erneut in das System geladen wird.

Wenn ein Fehler gefunden wird, erklärt ngnix relative genau, um welchen Fehler es sich handelt. Dies erleichtert das debugging im Vergleich zu Apache um Welten.
Wenn die Konfigurationsdatei fehlerlos läuft, muss ngnix diese Datei neu laden:

 

Der Server muss also nicht neu gestartet werden, um die config zu laden. Trotzdem ist ein weiterer Prozess nötig, welcher nicht unbedingt von jedem Benutzer bzw. Kunde ausgeführt werden sollte.

Vorteil:

  • ngnix wächst rasant und stabil
  • Geschwindkeit und Performance steigt um ein Vielfaches
  • einfache Fehleranalyse und Konfiguration (wenn man Erfahrung mit serverseitigen Javascript besitzt, ist der Aufbau sympathisch ähnlich)

Nachteil:

  • Im Normalfall kann der Kunde die Konfiguration nicht beinflussen.
  • Wie bei jedem neuen System muss sich auch hier der Support erst etablieren. So kann es durchaus passieren, dass man mit gewissen Problemen auf sich allein gestellt ist.

Abschluss

Ich könnte mir vorstellen, dass die Bearbeitung der Konfiguration bei ngnix über eine Weboberfläche für den Kunden bereitgestellt wird (ähnlich wie bei phpMyAdmin). Somit könnten Einstellungen ohne größeres Sicherheitsrisiko vom Kunden selbst übernommen werden.

Ein Urteil, welcher Webserver besser oder schlechter ist, fälle ich hier nicht. Zu groß ist das Thema, um es in einem kurzen Blogbeitrag abzuhandeln. Ich persönlich entdecke aber an ngnix immer mehr sympathische Seiten und hatte beim Einrichten des Auftritts von serafina.cc großen Spaß.

Ein Dank gilt hier vor allem Gerold von antiloop.com, denn ohne sein Vertrauen in mich hätte ich wohl nicht so schnell die Möglichkeit bekommen, ngnix im laufenden Betrieb unter die Haube zu blicken.

Weiterführende Links:


Stefan Hagspiel
Über den Autor: Stefan Hagspiel

Stefan Hagspiel ist Entwickler bei Mayr Record Scan.
Auf Google+ findet man ihn .

Inhaber
Mayr Record Scan GmbH
Abteilung: Web Semantic
Kirchstraße 13a
6922 Wolfurt

Verantwortlich
Stefan Hagspiel
Tel: 0043 664 831 99 08
Mobil: 0043 5574 75945 13
Mail: mrs.to:::s.hagspiel