16.04.2017, 08:31 Uhr Gerade keine Zeit? Hinweis: Wir haben in diesem Artikel Provisions-Links verwendet und sie durch "*" gekennzeichnet. Erfolgt über diese Links eine Bestellung, erhält t3n.de eine Provision.

Wenn es um die Wahl eines Webservers geht, sind Apache und Nginx die beiden bekanntesten Vertreter. Hier stellen wir die beiden vor und zeigen, wann welcher sinnvoller ist.

Anzeige

Nginx und Apache sind beides Open-Source-Webserver – abgesehen davon gibt es aber einige Unterschiede, die mal für das eine und mal für das andere System sprechen.

Nix mehr verpassen: Die t3n Newsletter zu deinen Lieblingsthemen! Die t3n Newsletter zu deinen Lieblingsthemen! Jetzt anmelden

Anzeige

Apache: Flexibel und lange bewährt

Der Apache HTTP Server wurde 1995 vorgestellt und ist laut w3techs.com der am weitesten verbreitete Webserver. Ein großes Plus für Apache ist die große Verbreitung und dass er schon lange auf dem Markt ist. Viele Systeme, etwa CMS, funktionieren beispielsweise von Haus aus mit Apache. Module wie etwa PHP oder mod_rewrite können flexibel nachgeladen werden.

Ein Nachteil von Apache ist die Performance. Bei kleineren Sites ist das noch kein großes Problem, aber wenn die Zahl der gleichzeitigen Anfragen ansteigen, steigt auch der Ressourcen-Hunger des Servers. Das liegt daran, dass der Apache für jede offene Verbindung zum Webserver einen eigenen Prozess startet, der Arbeitsspeicher benötigt. Hunderte oder tausende gleichzeitige Anfragen bedeuten ebenso viele Prozesse. Als das Apache-Webserver-Projekt gestartet wurde, war das nicht problematisch, da zu der Zeit große Lastspitzen eher selten waren.

Nginx: Performant und leichtgewichtig

Nginx wurde „erst“ 2002 vorgestellt und direkt mit Performance im Hinterkopf entwickelt. Der Fokus des Projekts liegt auf dem Core-Webserver und den Proxy-Funktionen. Nginx handhabt Verbindungen anders als Apache und setzt auf eine asynchrone Architektur – es wird nicht pro Verbindung ein Prozess gestartet, sondern es können pro Prozess tausende Verbindungen behandelt werden. Der Ressourcenverbrauch bleibt dadurch auch bei Lastspitzen relativ konstant, weshalb auch mit begrenzter Hardware performante Sites mit vielen Zugriffen ausgeliefert werden können. Auch Nginx lässt sich durch Module erweitern, die allerdings in das System kompiliert werden müssen. Ein dyamisches Laden wie bei Apache ist nicht möglich.

Im Gegensatz zu Apache unterstützt Nginx nur das Ausliefern statischer Inhalte – Anfragen für dynamische Inhalte werden an andere Software weitergegeben. Auch werden keine Konfigurationsanpassungen auf Verzeichnisebene durch .htaccess -Dateien u nterstützt. Insgesamt dürfte die Einrichtung eines Nginx-Servers meist aufwändiger sein als die eines Apache-Servers, was aber nur ins Gewicht fällt, wenn ihr euch wirklich mit Server-Administration auseinandersetzen möchtet. Bei Anbietern von Nginx-Hosting sollten Module für gängige Aufgaben vorhanden sein.

Apache und Nginx im Verbund

Statt nur auf Apache oder nur auf Nginx zu setzen, wäre auch folgendes Szenario denkbar: Ihr schaltet einen Nginx-Server vor einen oder mehrere Apache-Server. Der Nginx kümmert sich um alle statischen Anfragen und leitet die dynamischen an Apache weiter, sodass der Apache-Server deutlich weniger Anfragen abbekommt. So könnt ihr für dynamische Aufgaben auf die Apache-Module setzen und müsst keine externen Helfer für den Nginx installieren.

Fazit

Um die Frage zu beantworten, wann welcher Webserver sinnvoller ist: Theoretisch sollte Nginx wegen der Performance-Vorteile eigentlich immer die bessere Wahl sein. Praktisch sieht es anders aus: Sofern ihr euch nicht mir Server-Administration auskennt, müsst ihr auf einen Webhosting-Anbieter zurückgreifen, und die setzen oft auf Apache. Es gibt aber auch Anbieter, die Nginx anbieten – einige davon haben wir in einem Artikel vorgestellt.

Hier müsst ihr euch dann aber gegebenenfalls damit beschäftigen, welche Anpassungen vorgenommen werden müssen, bevor eine Software auf Nginx läuft (für populäre Systeme wird es da aber meist Anleitungen geben). Falls ihr also einfach ohne Anpassungen eine Software auf einem Webserver installieren wollt, dürfte häufig Apache die bessere Wahl sein.

Anzeige

via www.digitalocean.com