Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Ratgeber

Nginx vs. Apache: Wann welcher Webserver sinnvoll ist

(Grafiken: nginx.com und Wikipedia)

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.

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.

Apache: Flexibel und lange bewährt

Apache ist bereits seit 1995 auf dem Markt. (Grafik: Wikipedia)

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 von Anfang an mit Performance im Hinterkopf entwickelt. (Logo: nginx.com)

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 unterstü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.

via www.digitalocean.com

Bitte beachte unsere Community-Richtlinien

14 Reaktionen
yoursql719

Da merkt man mal wieder den Unterschied der Leserschaft von t3n und digitalocean. Hier meckern alle rum, weil es strenge Apache2 Liebhaber sind, die keinerlei Offenheit gegenüber "neuen" Technologien besitzen. Bei Digitalocean sind die Kommentare fast ausschließlich pro nginx.
Auch wenn der Autor nicht auf alle Feinheiten eingegangen ist, sind die Argumente der Kommentatoren hier erstaunlich emotional getrieben.

Ist ja schön, dass ihr alle eure Workers bei Apache soweit konfiguriert habt, aber fragt euch doch mal, warum die größten Internetkonzerne in nginx investiert haben und nicht in Apache.
Im Endeffekt: ich weiß schon, alles ganz böse und Apache ganz toll, weil haben wir schon immer so gemacht. Ist auch nur Zufall, dass viele große Open Source Projekte mit nginx und mariadb Support kommen und den hervorheben, z.B. nextcloud.

Also macht alle brav weiter in eurer traditionsreichen Apache-Welt und immer schön die htaccess streicheln.

Antworten
Christian

Dieser Artikel bringt das Fass wirklich zum überlaufen. Das Print-Abo habe ich letztes Jahr schon wegen der flachen Inhalte gekündigt... eure Website mutiert jetzt auch zur Techie-Bild.

Apache hat mit "event" übrigens schon lange ein MPM, das die Prozesse ähnlich effizient wie Nginx verwaltet. Das Bottleneck sind die dynamischen Inhalte. Konfiguriert man Apache z.B. mit mpm_event und mod_proxy_fcgi und lässt von php-fpm rendern, kann Nginx nur noch mit einer marginal geringeren Speicherauslastung punkten. Und deaktiviert man bei Apache die Nutzung der .htaccess (AllowOverride None), ist es auch bei statischen Inhalten nicht weit von Nginx entfernt.

Woher ich das weiß? Ich hab's ausprobiert! Nicht einfach nachgeplappert! Extrakrass, oder?!

Antworten
Tim

Die Qualität der Beiträge auf t3n nimmt leider wirklich immer mehr ab.
Kennt jemand gute Alternativen, mit Beiträgen wie es sie auch früher hier gab?

Antworten
Robert Willemelis

ich würde fast behaupten der IIS ist noch bekannter als nginx^^

Antworten
Holger

nutze selber Nginx mit SSL und http2 + redis Cache. Setze Server auf und habe einige Jahre Linux Kenntnisse.

Ja, darüber sollte man nur schreiben wenn man etwas von der Praxis versteht

Antworten
Bernhard

Ich spare mir die Kritik an der inhaltlichen Tiefe und versuche einfach mal etwas konstruktives.

Praxisbeispiele.

Nginx vor Applicationsservern. In vielen Variationen eingesetzt. Nginx stellt einen Cache zur Verfügung (statische und dynamische Ressourcen!), mittels Reverse Proxy und einfachen Load-Balancing sind dahinter dann Applicationsserver unter wenig Last und sehr flexibler Konfiguration. Highlights für mich dabei:
- durch Cache Header der Applicationsserver kann Nginx selbst dynamische Seiten wie Suchergebnisse im Cache halten - mittels Expire bzw. Cache Purge sogar für längere Zeiträume
- die Anzahl der Applicationsserver kann einfach durch eine triviale Konfigurationsänderung angepasst werden.
Je nach Applikation habe ich schon Leistungssteigerungen im Bereich von 25 Requests pro Sekunde pro Applikationsserver auf über 4.000 Requests pro Sekunde (rechnerisch) gesehen. Dabei handelt es sich wohlgemerkt um Produktionsdaten und keine Benchmarks.

Nginx als Zugangspunkt zu einem umfangreichen Intranet. Mittels LUA Programmierung wird auf das Vorhandensein einer gültigen Session geprüft, dann geht es als reverse Proxy auf einen echten Zoo aus Webservern (Apache, node.js, Tomcat, Sharepoint, Python). Vorteile: Der Nginx hat eine statische IP, nimmt als Cache den gesamten statischen Content auf und vereinfacht radikal das Netzwerkdesign. Außerdem fungiert er noch als einfache Application Firewall und zentrales Log.

Fazit: Apache ist sehr flexibel für Webhosting mit vielen Projekten und unterschiedlichsten Konfiguration einsetzar. Nginx ist optimal VOR Applikationsservern. Die Kombination aus Nginx und Apache ist nach meiner Erfahung genial, da die Stärken beider Produkte sich optimal ergänzen.

Antworten
Stefan

Als aufmerksamer Leser von t3n muss ich mich ebenfalls meinen Vorrednern anschließen. Persönlich finde ich durch diesen Artikel auch den guten Ruf von t3n gefährdet.

Es ist doch schon verfremdend, das jemand, wie hier Florian Brinkmann, der sich nur mit Wordpress und Templates beschäftigt, einen "RATGEBER" mit größter Publizität auf dieser Seite veröffentlicht, ohne vom Tuten und Blasen überhaupt eine Ahnung zu haben richtig erbärmlich! Nur damit ein paar Klicks generiert werden?

Wo sind die Qualitätsstandards denn bei t3n hin?! Demnächst schreibt hier ein Homöopath einen Artikel, wie man mit einem Rapsberry Pi Rückenschmerzen behandelt. Also es sollten doch noch 9,50€ pro Stunde bei t3n für eine passable Qualitätssicherung vorhanden sein. Wenn nicht: Spart mal etwas an eurem Hipster Lifestyle (so wie es eure Praktikantin ein paar Artikel später beschrieben hat) und bringt mehr seriöse Inhalte als nur "Optik'. Sonst werdet ihr leider irgendwann zum nächsten FOCUS online oder BILD online. Schade...

Antworten
Kritiker

Wow mir wäre so ein Artikel als Autor echt peinlich ...

Antworten
alem_r

ja t3n kann man langsam wirklich rauchen. Hier gehts doch mehr um Hippster/Nerd-Lifestyle, Gadgets und von "hast du nicht schon gehört"-Sachen...

Lernen kann man bei t3n schon lange nix mehr. Zumindest nicht aus technischer Sicht.
Vielleicht wäre es besser Übersetzer einzustellen. Die können dann wirklich gute Berichte von englisch ins deutsche übersetzten. So hätte man wieder sinnvollen Lesestoff und die Übersetzer sind günstiger als die Redaktoren...

Ansonsten empgehle ich entwickler.de... Online nicht so ausführlich aber das Print-Magazin ist wirklich gut.

Antworten
Otto

Ich kann den vorherigen Kommentatoren nur beipflichten: Der Artikel ist inhaltlich doch sehr dünn und selbst für eine "Zusammenfassung" des Artikels von Digital Ocean eine Zumutung.

Bitte achtet doch einmal auf die Qualität bei technischen Beiträgen...

Antworten
Pascal M.

Also dieser Artikel senkt die durchschnittliche Qualität von t3n und das nicht zu knapp. Es liest sich eher wie eine Produktplatzierung und weit aus weniger als ein technischer Artikel von jemandem mit Ahnung von der Thematik.

Allein bei der Benutzung von PHP für dynamische Inhalte ist ein mod_php einen FastCGI oder FPM vorzuziehen. Stichwort: Pooling und Zombie-Prozesse sind bei mod_php kein Thema wegen der, hier so belächelten, Prozessarchitektur von Apache.

Aber hier merkt man das der Autor eher mehr Marketing macht (Performance über alles) und weniger sich mit dem technischen Schulden (robust und Wartungsarm) eines Systems befasst.

Liebes t3n, es sollten doch noch mal von euch technische Artikel kommen die mehr als nur 4-5 Absätze beinhalten; die wirken Seriöser

Antworten
Matthias

Bitte, lieber Redakteur, beschäftige Dich mit den Technologien bevor Du darüber berichtest und versuchst Deine "Weißheiten" an den Mann zu bringen.

Bei diesem Artikel rollen sich mir die Fußnägel hoch...

Antworten
Daniel

Ihr habt doch die Quelle bei Digital Ocean verlinkt. Wie könnt ihr aus dieser Quelle (die sich ausführlich mit Vorteilen und Nachteilen der Webserver beschäftigt) so eine schlechten Artikel bauen?

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.