Apache vs. Nginx – Webserver im Vergleich

Wer eine Webseite an den Start bringen möchte, braucht einen Webserver. Dabei fällt in der Regel die Wahl auf einen der beiden Marktführer: Apache oder Nginx. 

Der Open-Source-Webserver Apache ist seit 1995 auf dem Markt und nach w3techs.com sogar der mit Abstand am weitesten verbreitete Webserver. Dagegen hat Nginx laut netcraft.com einen Marktanteil von 15 %. Allerdings laufen unter den Top-1000-Websites rund 46 Prozent auf dem Nginx-Server; der Anteil vom Apache-Server dagegen liegt bei 14 Prozent. 

Das mag vor allem daran liegen, dass die zentrale Konfiguration von Nginx besser für die Bedürfnisse des Web 2.0 geeignet ist. Denn die Software ist speziell für Websites konzipiert, die viel Datenverkehr haben.

Was ist ein Webserver?

Die Aufgabe eines Webservers ist es, die auf dem Server gespeicherten Inhalte an die Clients auszuliefern. Dies übernehmen Übertragungsprotokolle wie HTTP oder HTTPS und Netzwerkprotokolle wie IP und TCP. Webserver kommen dabei sowohl in lokalen Netzwerken (Intranet), als auch als WWW-Dienst im Web zum Einsatz.

Apache-Server

Apache ist eine quelloffene, freie Webserver-Software, die von der Apache Software Foundation erstellt und der Web-Community kostenlos zur Verfügung gestellt wird. Meistens wird der Server unter Windows als „WAMPP“ und auf dem Mac als „XAMPP“ bezeichnet. 

Es wird allerdings empfohlen, den HTTP Server mit Windows-Versionen erst ab NT zu betreiben. Er ist aber standardmäßig in fast allen Linux-Distributionen enthalten. Die erste Version wurde 1995 erstellt und basierte auf dem NCSA HTTPd, dem ersten verfügbaren Webserver. Der HTTP-Server spielte auch eine Schlüsselrolle bei der Entwicklung des World Wide Web. 

Er wird häufig in Kombination mit Datenbanken wie MySQL und serverseitigen Skriptsprachen wie PHP, Perl oder Python verwendet, um lebendige Webseiten zu erstellen. Dynamische HTML-Seiten werden mit Hilfe einer Skriptsprache wie PHP aus Datenbankinhalten generiert. Um die Vorteile eines Betriebssystems voll auszunutzen, wurde die Version 2.0 des HTTP Servers mit einer speziellen Bibliothek, der Apache Portable Runtime, ausgestattet.

Der Weberver wurde 1995 von Robert McCool eingeführt und 1999 unter der Leitung der Apache Software Foundation weiterentwickelt. Als Standardserver zeichnet er sich durch eine weitreichende Kompatibilität aus. Er wird von vielen Administratoren wegen seiner langen Geschichte, der guten Dokumentation und dem umfangreichen Support verwendet. Gegenüber der Konkurrenz punktet der Webserver auch durch seinen modularen Aufbau und den daraus resultierenden großen Funktionsumfang. 

Er ist der am weitesten verbreitete Server. Das liegt auch daran, dass viele Anwender mit Shared-Hosting-Szenarien beginnen, die aufgrund der verteilten Verwaltungsfunktionen von „.htaccess“ fast ausschließlich auf Apache setzen. 

Auch Administratoren und Webentwickler setzen ihre ersten Projekte in der Regel auf kostengünstigen Shared-Hosting-Plattformen um. Da viele Systeme standardmäßig mit dem Apache-Server ausgeliefert werden, ist dieser auf allen großen Linux-Distributionen wie Red Hat, CentOS oder Ubuntu vorinstalliert. 

Die Anzahl der verfügbaren Erweiterungen und Module und die relativ einfache Konfiguration, auch in Massenhosting-Umgebungen, machen ihn zum Webserver der Wahl auch für Einsteiger.

Nginx-Server

Nginx ist eine Open-Source-Software, die unter der BSD-Lizenz veröffentlicht wird. Entwickelt vom russischen Entwickler Igor Sysoev, umfasst die Software den Webserver, einen E-Mail-Proxy und einen Reverse Proxy. Ursprünglich war sie für die russische Suchmaschine Rambler geplant, für die sie auch heute noch verwendet wird. 

Die Software Nginx hat dabei einen modularen Aufbau. Sie liegt mit 41,8 % knapp auf dem zweiten Platz der beliebtesten Webserver und wird den Anforderungen des Web 2.0 besser gerecht. Die schnellere Auslieferung von statischen Inhalten durch die parallele Verarbeitung von Anfragen macht den Webserver beispielsweise besonders für große und ressourcenintensive Projekte interessant. 

Dank seines ausgeklügelten Cachings und seiner Performance-Vorteile eignet sich Nginx für Websites mit hohem Traffic. Es gibt zwei Versionen: Eine Open Source Version mit BSD-Lizenz und Nginx Plus mit Support und zusätzlichen Enterprise-Funktionen. Der Webserver implementiert dabei so etwas wie ein Modulsystem. Der größte Unterschied zum Apache ist die Ereignisbasierung von Anfragen. Außerdem ist es stark modular aufgebaut.

Vergleich

Ein Nachteil von Apache ist vor allem die Performance. Für kleinere Sites ist das noch kein großes Problem, aber wenn die Anzahl der gleichzeitigen Anfragen steigt, nimmt der Ressourcenhunger des Servers stetig zu. Unzählige Vergleichstests belegen die Geschwindigkeitsvorteile von Nginx gegenüber dem Apache. 

Dabei unterscheiden sich die beiden Webserver im Wesentlichen darin, wie sie eingehende Client-Anfragen behandeln. Allerdings verwenden beider Server jeweils ihre eigenen Taktiken und Ideen, um die Anforderungen zu erfüllen. Obwohl sie viele Funktionen gemeinsam haben, sollten sie nicht als vollständig austauschbar angesehen werden.

Die Anzahl der verfügbaren Erweiterungen und Module und die relativ einfache Konfiguration, auch in Massenhosting-Umgebungen, machen Apache-Server allerdings für Einsteiger zum Webserver der Wahl. Die Konfiguration des Apache-Webservers erfolgt über eine .htaccess-Datei. Wer davor scheut, eine komplett neue Konfigurationsdatei zu erstellen, kann einen der vorhandenen htaccess-Konverter verwenden. 

Beim Nginx-Server erfolgt die Konfiguration über eine feste Konfigurationsdatei, die sich außerhalb des Web-Root befindet. Diese feste Konfigurationsdatei enthält alles, was Nginx wissen muss. Die Konfigurationsdatei ist permanent im Speicher des Servers vorhanden, so dass es nicht nötig ist, die Unterverzeichnisse auszuprobieren. Dabei wird eine Konfigurationsdatei mit einer geschweiften, JS-ähnlichen Syntax verwendet.

Beide können allerdings auch in Kombination verwendet werden, und man kann so das Beste aus beiden Welten erhalten. Dazu schaltet man einen Nginx-Webserver als Reverse-Proxy vor den Apache-Server. Der Nginx-Webserver liefert die statischen Inhalte der Website, und für dynamische Inhalte, in der Regel von PHP-Skripten, wird die Anfrage an den Apache-Server weitergeleitet.

Übersicht Unterschiede

  • Apache-Server laufen auf allen Unix-ähnlichen Systemen und unterstützt auch Windows vollständig, Nginx-Server haben jedoch eine eingeschränkte Unterstützung für Windows.
  • Der Apache-Server verwendet einen Multi-Thread-Ansatz zur Verarbeitung von Client-Anfragen, der Nginx-Server hingegen einen ereignisgesteuerten Ansatz.
  • Der Nginx-Server kann im Gegensatz zum Apache-Server bei starkem Webverkehr mehrere Anfragen gleichzeitig verarbeiten.
  • Apache-Server verarbeiten dynamische Inhalte innerhalb des Webservers selbst; bei Nginx übernimmt ein PHP-Interpreter die Anfrage und liefert das Ergebnis zurück.
  • Nginx ist sowohl ein Webserver als auch ein Proxyserver, Apache nur Webserver.
  • Module werden im Apache-Server dynamisch geladen oder entladen, beim Nginx-Server müssen diese vorher kompiliert werden.

Fazit

Der Vorteil von Nginx ist eindeutig seine Performance, was ihn für Webseiten mit hohem Traffic attraktiver macht. Für Apache hingegen spricht die einfache und flexible Konfiguration und seine Einsetzbarkeit für Windows-Server, was ihn einem breiteren Spektrum an Webseitenbetreibern zugänglich macht.

Interessante Links:

Unterschiede von Apache und Nginx auf Kinsta

Wann sollte man welchen Webserver nutzen? Mehr auf t3n

Bilder: Canva


Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.

Schreibe einen Kommentar