Datum: | Internet

Das Internet, so wie wir es heute kennen, startete seinen Eroberungsfeldzug Anfang der 90iger Jahre. Am 20. September 1990 ging am Genfer Kernforschungszentrum CERN die erste Webseite der Welt online und läutete gleichzeitig auch die Geburtsstunde des World Wide Web ein. Webseiten sind im Prinzip nichts anderes als HTML-Dokumente. Um den Besuchern mehrere unterschiedliche Webseiten zur Verfügung stellen zu können, benötigt der Host eine Server-Software. Diese verarbeitet die Anfragen und analysiert sie um anschließend die angeforderten Dokumente im Browser zurückzuliefern. Zwei der beliebtesten Programme dieser Art sind NGINX und Apache. In diesem Vergleich stellen wir Ihnen die beiden Webserver samt Ihrer Features im Detail vor und zeigen, welcher davon sich besser für welche Zwecke eignet.

Worin unterscheidet sich ein Webserver von einem Application-Server?

Die Aufgabe eines Webservers ist es, eine Verbindung zwischen einem physischen bzw. einem Cloud-Server und den gespeicherten Webseiten (respektive den Browsern) der Internet-Nutzer herzustellen. Der Application-Server ist hingegen dafür zuständig, Anwendungen innerhalb eines Netzwerks zur Verfügung zu stellen.

Eignen sich sowohl NGINX als auch der Apache Webserver für die Bearbeitung von dynamischen Anfragen?

Nein, im Gegensatz zum Apache Webserver unterstützt NGINX nur das Ausliefern von statischen Inhalten. Dynamischer Content wird hingegen an eine andere Software weitergegeben.

Lassen sich die beiden Webserver auch im Verbund nutzen?

Ja, das funktioniert sogar ausgesprochen gut. In der Praxis findet man überwiegend die Kombination NGINX als Reverse Proxy und einen oder mehrere Apache Server im Backend.

1. Apache: Populärer Flexibilist

Der Open-Source-Webserver Apache ist bereits seit 1995 auf dem Markt vertreten und laut w3techs.com der am weitesten verbreitete Webserver überhaupt. Aufgrund seiner langen Geschichte, der umfangreichen Dokumentation und den flexiblen Einsatzmöglichkeiten ist der Webserver bei Administratoren sehr beliebt. Der enorme Marktanteil ist aber in erster Linie auch darauf zurückzuführen, dass viele Systeme (z.B. CMS) von Haus aus mit Apache funktionieren. Zudem ist dieser auf allen wichtigen Linux-Distributionen wie Red Hat, CentOS oder Ubuntu bereits vorinstalliert.

Gut zu wissen: Seit 1999 übernimmt die Apache Software Foundation die Weiterentwicklung des Web-Servers.

Die Konfiguration des Apache-Webservers wird mithilfe einer .htaccess-Datei durchgeführt. Diese gestattet eine hohe Flexibilität bei der Bearbeitung eingehender Anfragen. So können beispielsweise Speicherlimits und Datei-Upload-Beschränkungen definieren, Umleitungsregeln oder einen Verzeichnisschutz (htpasswd) einrichten oder diverse Sicherheits-Einstellungen für den Umgang mit Cookies vornehmen.

Einer der größten Vorteile von Apache ist aber sicherlich, dass Sie jeder Ebene bzw. jedem Verzeichnis im Baum eine eigene .htaccess-Datei mit einer individuellen Konfiguration zuweisen können. Das erlaubt es beispielsweise Shared-Hosting-Providern, Ihren Kunden auf ein und derselben Maschine eine Konfigurationsmöglichkeit für Ihre Website anbieten zu können, ohne die anderen Nutzer dadurch zu beeinträchtigten. Nimmt ein Nutzer eine Einstellung für seine dedizierte Umgebung vor, bleibt die globale Serverkonfiguration davon unberührt.

1.1. Module erweitern die Funktionalität des Webservers

Dank des dynamischen Modulsystems (das es in der Form auch in NGINX gibt) lässt sich die Funktionalität von Apache zusätzlich erweitern. Die Module können Sie auch dann noch installieren, wenn Sie den Apache Webserver bereit aufgesetzt und in Betrieb genommen haben, und sie bei Bedarf aktivieren oder deaktivieren. Eine offizielle Liste aller Module, die Bestandteil der Apache-Standard-Distribution sind, finden Sie hier.

Tipp: In Debian-basierten Linux-Distributionen können die Module ohne Bearbeitung der Konfigurationsdateien über die Befehle a2enmod und a2dismod aktiviert bzw. deaktiviert werden.

1.2. NGINX vs Apache: Das Leid mit der Performance

Performance Benchmark NGINX vs Apache

Der Apache-Webserver wurde  im Laufe der Zeit stetig verbessert und in seiner Leistung optimiert. An die Performance-Benchmark von NGINX kommt er aber bei Weitem nicht heran.

Eine große Schwachstelle von Apache ist die Performance. Denn während der Webserver bei kleineren Webseiten noch zuverlässig und stabil läuft, gerät er mit zunehmender Zahl gleichzeitiger Anfragen regelmäßig ins Straucheln. Das liegt vor allem daran, dass für jede offene Verbindung zum Webserver ein eigener Prozess gestartet wird, der Arbeitsspeicher beansprucht. Dadurch entstehen bei hunderten oder tausenden parallelen Anfragen logischerweise ebenso viele Prozesse. Diese erhöhen die Ladezeiten der Seiten drastisch und können schlimmstenfalls sogar zu einem kompletten Stillstand das Webservers führen können.

Der Apache-Webserver wurde im Laufe der Zeit stetig verbessert und in seiner Leistung optimiert. Mit einem NGINX „Out-of-the-Box“ kann er aber dennoch nicht mithalten.

2. NGINX: Performantes Leichtgewicht

NGINX wurde erst 2004 veröffentlicht und von Anfang an mit Fokus auf Performance, den Core-Server und die Proxy-Funktionen entwickelt. Der Webserver bietet vor allem auf limitierten Systemen entscheidende Vorteile gegenüber Apache, denn er setzt im Gegensatz dazu auf eine asynchrone, eventbasierte Architektur. Das bedeutet, dass nicht für jede Verbindung ein separater Prozess gestartet wird, sondern pro Prozess sogar mehrere tausend Verbindungen abgehandelt werden können. Auf diese Weise ist NGINX in der Lage, eine hohe Anzahl gleichzeitiger Anfragen zu bedienen, ohne dabei an Geschwindigkeit und Stabilität einzubüßen. Der Ressourcenverbrauch bleibt auch bei Lastspitzen relativ konstant, wodurch performanceintensive Seiten mit einer großen Anzahl von Zugriffen auch mit begrenzter Hardware (z.B. auf einem Raspberry Pi) ausgeliefert werden.

2.1. Dynamische Inhalte werden nicht unterstützt

Auch NGINX lässt sich durch Module erweitern. Diese müssen allerdings in das System kompiliert werden, da ein dynamischen Laden wie bei Apache nicht möglich ist. Außerdem unterstützt NGINX im Gegensatz zu Apache nur das Ausliefern statischer Inhalte, wie beispielsweise Bilder, CSS-Stylesheets oder JavaScript und bietet auch keine Möglichkeit, entsprechende Interpreter durch Module einzubinden. Für dynamischen Content (z.B. PHP-, Python oder Perl-Scripts) wird die Anfragen an eine anderen Software weitergegeben (also im Fall von PHP an den entsprechenden Interpreter).

Darüber hinaus werden auch keine Konfigurations-Anpassungen auf Verzeichnisebene (durch .htaccess) unterstützt, wodurch sich die Einrichtung eines NGINX Webserver generell etwas aufwändiger gestaltet als bei Apache. Das spielt allerdings nur dann eine Rolle, wenn Sie sich im Detail mit der Server-Administration auseinandersetzen möchten. Bei Hosting-Anbietern, die NGINX im Portfolio haben, gibt es für gängige Aufgaben in der Regel aber die passenden Module.  

3. NGINX und Apache als Verbund

Wordpress unter Windows durch Lupe betrachtet

Speziell im WordPress-Umfeld findet man auch sehr häufig die Kombination aus einem NGINX-Reverse-Proxy und einem oder mehreren Apache-Backend-Servern.

Um von den Vorteilen beider Welten zu profitieren, können Sie NGINX und Apache auch in Kombination verwenden. Während NGINX sich beispielsweise besonders gut als Reverse Proxy eignet, kommt der Apache aufgrund seines Umgangs dynamischen Inhalten vornehmlich als Backend-Server zum Einsatz.

In der Praxis schaltet man dazu den NGINX-Server vor einen oder (als Loadbalancer) mehrere Apache-Server. Die eingehenden Verbindungen gehen also erst einmal an den NGINX, der sich um die Auslieferung der statischen Inhalte kümmert. Für dynamischen Content wird die Anfrage hingegen an den Apache-Server weitergereicht, der in diesem Zusammenhang auch auf seine .htaccess-Datei zurückgreifen kann.

4. Fazit: Apache oder NGINX?

Die Frage, welcher Webserver nun der bessere ist, lässt sich pauschal nicht beantworten. Denn während NGINX Apache in Sachen Performance meilenweit den Rang abläuft, hat dieser in Bezug auf den Umgang mit dynamischen Inhalten die Nase vorne. Die Entscheidung hängt also letztendlich auch immer von den individuellen Anforderungen Ihres Web-Projektes ab. In der Praxis setzen auch viele Anwender auf einen Verbund, um von den Stärken beider Webserver zu profitieren.

Gut zu wissen: Die Internet-Community "Stack Overflow" ist eine gute Anlaufstelle für Entwickler und Administratoren. Denn dort finden Sie nicht nur Antworten auf die meisten Fragen zum Thema Webserver, sondern auch zahlreiche Anleitungen, Tutorials und Support-Hinweise in Bezug auf die Einrichtung und den Umgang mit Apache, NGINX und deren Alternativen. Dazu zählen beispielsweise der freie Webserver Lighttpd oder der Open Source-HTTP / 2-fähige Caddy.

Vor- und Nachteile der beiden Webserver finden Sie auch noch einmal im folgenden Video zusammengefasst:

34 Bewertungen

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne Ø 3,91
NGINX vs Apache: Die beliebten Webserver im Vergleich
Loading...

Hinterlasse eine Antwort

(wird nicht veröffentlicht)

Nutzungsrichtlinien beachten