Apache vs. Nginx: Webserver im Vergleich

Web-Entwicklung
Apache vs. Nginx: Webserver im Vergleich

Um eine (WordPress-)Webseite im Internet bereitzustellen, benötigt es einen Webserver. Auf diesem läuft die Webseite und ist dadurch erreichbar. Anfragen werden verarbeitet und die richtigen Ressourcen werden zurückgegeben. Es gibt eine Reihe an Webservern aus denen man wählen kann, die beiden bekanntesten Open Source Webserver-Lösungen sind jedoch Apache und Ngnix. Doch wie entscheidet man sich zwischen diesen beiden? Gibt es Unterschiede, und was ist der richtige Server für die WordPress-Webseite?

Unterschiede zwischen Apache und Nginx

Es gibt durchaus Unterschiede zwischen den beiden Servern. Um zu verstehen, wie diese Unterschiede zustande kommen, schauen wir uns kurz die Geschichte der beiden Webserver an.

Die Geschichte von Apache

Apache wurde 1995 von Robert McCool veröffentlicht und hält sich seitdem an der Spitze der meistgenutzten Webserver. Warum Apache so weit verbreitet ist, liegt unter anderem an seinen Features. So ist Apache schon auf vielen Linux Distributionen vorinstalliert oder einfach nachzuinstallieren. Allein weil Apache schon so lange erhältlich ist, hat sich eine große Community gebildet in der sich eifrig ausgetauscht, und die Weiterentwicklung von Apache gefördert wird. Auch ist der Webserver durch sein modulares Design bekannt, weshalb er sich stark anpassen lässt und gleichzeitig unnötige Zugriffe verhindert. Er gilt als nutzerfreundlich und wird für seine Kompatibilität unter Linux und Windows gelobt.

Die Geschichte von Nginx

Nginx wurde erst im Jahr 2004 von Igor Szsoev entwickelt und veröffentlicht. Hintergrund war die immer stärker heranwachsende Herausforderung des sogenannten C10K Problems. Damit wurde das Problem benannt, welches viele Webserver erleben, wenn sie mehr als 10.000 Verbindungen gleichzeitig verarbeiten müssen. Dabei geht es nicht um die Geschwindigkeit in der diese Verbindungen abgearbeitet werden können, sondern mehr um die Fähigkeit viele gleichzeitig eintreffende Anfrage sinnvoll koordinieren zu können und dann in einer angemessenen Zeit abzuarbeiten. Nginx wurde deshalb asynchron entwickelt, und besitzt eine non-blocking und eventbasierte Architektur. Der Webserver ist sehr beliebt bei Webseiten, die einen hohen Traffic aufweisen oder viele statische Elemente verwenden, sowie bei Proxies oder ressourcenarmen Systemen.

Funktionen von Apache und Nginx

Die Frage “Apache vs. Nginx” kommt nicht von ungefähr. Beide Webserver arbeiten unterschiedlich, um ähnliche Funktionalität zu bieten. Welche Unterschiede das genau sind, listen wir im folgenden auf.

Apache – Mods und htaccess-Support

Unter Apache werden sogenannte “Mods” verwendetet. Dies sind Module, welche dynamische Inhalte direkt im Server ausführen können. Hierzu zählt beispielsweise “mod_php”, mit dem sich PHP direkt im Apache ausführen lässt. Zusätzlich bietet Apache mehr als 60 Plugins an, die fast jeden Fall abdecken.

Oftmals wichtig für die WordPress-Webseite ist der htaccess-Support, welchen Apache im Gegensatz zu Nginx mit sich bringt. Mit diesem lassen sich von der WordPress-Anwendung heraus Konfigurationen am Apache-Webserver anpassen. So können in der htaccess-Datei dynamische URLs, Weiterleitungen oder ein Verzeichnisschutz konfiguriert werden. Einziger Nachteil: Das System ist dadurch etwas unsicherer und durch die hohe Konfigurationsmöglichkeit leichter anfällig für seltsame Fehler.

Diese Konfigurationsmöglichkeit vereinfacht jedoch das Aufsetzen und Warten einer WordPress-Anwendung, da WordPress einen Großteil der Konfiguration selbst vornehmen kann. Auch die jahrzehntelang gewachsene Community und die große Anzahl an Plugins sind ein Pluspunkt für Apache. Jedoch zeigt Apache Schwächen, sobald mehr statische Inhalte unter WordPress verwendet werden, oder generell eine große Anzahl an Zugriffen gleichzeitig stattfindet. Dies liegt daran, dass für jede Anfrage ein neuer Prozess gestartet wird, diese jedoch vom Betriebssystem limitiert sind. (C10K  Problem).

Nginx – schnell und schlank 

Mit Nginx lassen sich mehrere Requests pro Prozess verarbeiten, das macht ihn schneller und robuster. Da Nginx aber streng genommen nur als Proxy für den Anwendungsserver gilt, kann hier PHP nicht direkt im Nginx ausgeführt werden. Ein zusätzlicher PHP-Server muss installiert und aktiviert werden. Mit php-fpm leitet Nginx dann Anfragen an den PHP-Server weiter. Außerdem ist Nginx “schlanker” im Vergleich zu Apache. Nginx dient nur als Webserver, übernimmt also auch nicht mehr Aufgaben. Geschwindigkeit und Flexibilität werden extern geregelt. Daher bietet sich Nginx auch gut als Proxy oder Load-Balancer an, um Anfragen weiterleiten zu können.

Im WordPress-Umfeld bietet Nginx keinen htaccess-Support. Konfigurationen müssen unter /etc/nginx daher manuell angepasst werden, sofern nötig. Dadurch ist das System sicherer und robuster, da die Konfigurationen nicht so leicht geändert werden können. Der Webserver hat gerade in Verbindung mit statischen WordPress-Inhalten auch eine deutlich bessere Performance als der Apache Webserver.

Apache “Virtual Hosts” vs. Nginx “Server”

Was ist der Unterschied zwischen diesen beiden Komponenten? Nichts, denn sie beschreiben dasselbe. Dies sind Begriffe, die jeweils eine gehostete Anwendung beschreiben. Es handelt sich hierbei um gekapselte Konfigurationen für eine spezifische Anwendung. Dies bietet die Möglichkeit mehrere unabhängige Anwendungen pro physikalisch verwendbarem Server anzulegen, ohne dass deren Konfigurationen sich in die Quere kommen. Sowohl unter Apache wie auch unter Nginx lassen sich auch mehrere Domains unter einer Anwendung halten.

Zusammenfassung – Welchen Webserver wähle ich?

Apache und Nginx sind ähnlich, schließlich haben sie die gleichen Probleme zu lösen und müssen ähnliche Aufgaben bewältigen. Dennoch gibt es, wie wir bereits festgestellt haben, Unterschiede zwischen den beiden Servern.

Dies ist zum einen dem jeweiligen Eintrittsalter zu verschulden. Apache wurde fast zu Beginn des Webs veröffentlicht. Damals konnte man sich kaum vorstellen wie enorm das Ausmaß des Internets einmal sein würde. Nginx wurde zu einer Zeit veröffentlicht, in der man sich bereits mit sehr hoher Geschwindigkeit bewegte und das Internet, seine Anwendungen und auch Geräte immer schneller wuchsen.

Beide Webserver bedienen auch verschiedene Anwendungsbereiche. Apache bietet viele Funktionen direkt oder durch einfache Plugins an und ist damit schnell einsatzfähig. Nginx jedoch ist performant, äußerst flexibel und kann sich besser anpassen. Der Nginx Webserver ist als Open Source Variante unter der BSD-Lizenz und als monetäre Option unter Nginx Plus erhältlich.

Welchen Webserver man für seine Webseite wählt, hängt vom Inhalt und dem Verwendungszweck der Webseite ab.

Weitere Fehlermeldungen und Lösungen



Sie benötigen eine WordPress Agentur? Wir stehen als Ihre Experten zur Verfügung. Treten Sie mit uns in Kontakt und vereinbaren Sie ein unverbindliches Beratungsgespräch.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.