Serverseitiger Showdown: Apache vs NGINX
Veröffentlicht: 2020-10-01Webserver sind das Herzstück des Internets. Ohne Webserver-Software wie Apache und NGINX wäre das Web nicht das, was wir heute sehen. Sie sind jedoch nicht austauschbar. Um zu wissen, welche dieser beiden Optionen – Apache vs NGINX – für Sie am besten geeignet ist, müssen Sie verstehen, wie sie funktionieren.
In diesem Artikel werden wir darüber sprechen, was Webserver sind und wie sie funktionieren und sowohl Apache als auch NGINX vorstellen. Wir werden dann Apache mit NGINX in Bezug auf die wichtigsten Unterschiede vergleichen und ihre Vor- und Nachteile durchgehen.
Lasst uns anfangen!
Was ist ein Webserver?
Kurz gesagt, ein Webserver ist ein Computer, auf dem Serversoftware wie Apache oder NGINX ausgeführt wird. Ein Webserver speichert sowohl Site-Dateien als auch eingehende Anfragen, um darauf zuzugreifen.
Es ist die Webserver-Software, die für diese letzte Aufgabe verantwortlich ist, die eine wichtige Aufgabe ist. Bei beliebten Websites muss die von Ihnen verwendete Software möglicherweise eine große Anzahl von Anfragen in einem kurzen Zeitrahmen verarbeiten, sodass sie der Aufgabe gewachsen sein muss. Sowohl NGINX als auch Apache sind in der Lage, eine große Anzahl von Anfragen zu skalieren und zu verarbeiten. Die Funktionsweise beider Serveroptionen unterscheidet sich jedoch auf Kernebene.
Webserver-Software arbeitet mit mehreren anderen Komponenten zusammen, um moderne Websites und Anwendungen bereitzustellen. Um beispielsweise WordPress auf einem Server einzurichten, benötigen Sie die folgenden Komponenten:
- Webserver mit HTTPS-Unterstützung: Dies kann Apache, NGINX oder einige andere Optionen sein.
- PHP: WordPress basiert auf der Sprache PHP, daher benötigen Sie es, um das Content Management System (CMS) auszuführen.
- Datenbanksoftware: Dies kann MySQL oder MariaDB sein.
In diesem Artikel konzentrieren wir uns ausschließlich auf die Webserver-Software. Es ist jedoch wichtig zu verstehen, dass Software nicht in einem Vakuum funktioniert. In einigen Fällen können Sie sogar Webserver wie Apache und NGINX so konfigurieren, dass sie zusammenarbeiten . Eine Möglichkeit für Websites, dies zu tun, besteht darin, NGINX so zu konfigurieren, dass es als Reverse-Proxy arbeitet, während Apache als Hauptserversoftware verwendet wird. Die Anwendungen, die Ihnen zur Verfügung stehen, sind eindeutig vielfältig und reichlich.
Eine Einführung in Apache

Apache war lange Zeit die Standard-Webserver-Option für die meisten Websites. Die Software gibt es seit 1995, als Robert McCool den Apache HTTP Server vorstellte. Einige Jahre später übernahm die Apache Software Foundation die Wartung und aus Apache wurde Open-Source-Software.
Apache erlangte enorme Popularität, da es zusammen mit mehreren großen Linux-Distributionen installiert wurde. Wenn es um Webserver geht, hat die Verbreitung von Linux Apache jahrelang zur De-facto- Wahl gemacht.
Der Name Apache ist bei Linux so tief verwurzelt, dass das Betriebssystem (OS) den Befehl httpd für seinen Serverprozess verwendet (etwas, das in Apache selbst zu finden ist). Apache ist jedoch nicht der einzige große Name, wenn es um Webserver geht.
Eine Einführung in NGINX

NGINX wurde von Igor Sysoev entwickelt, um mit dem sogenannten „C10K-Problem“ umgehen zu können. Dies befasst sich mit der Optimierung eines Netzwerks, um bis zu 10.000 gleichzeitige Verbindungen verarbeiten zu können. Mit anderen Worten, NGINX wurde mit Blick auf maximale Skalierbarkeit entwickelt.
Die Open-Source-Software wurde 2004 veröffentlicht, und jetzt gibt es dafür zwei Lizenztypen. Sie haben die Open-Source-Version und NGINX Plus, eine Unternehmenslösung mit professionellem Support und anderen Funktionen.
In den Anfängen verwendeten die meisten Websites NGINX, um aufgrund der wahrgenommenen Installationsschwierigkeiten im Vergleich zu Apache nur statische Anfragen zu verarbeiten. Der Marktanteil von NGINX ist im Laufe der Jahre jedoch stetig gewachsen.
Laut einigen Umfragen hat NGINX Apache als beliebteste Webserver-Software der Welt überholt. Andere Zahlen setzen es Apache direkt auf die Fersen:

Bildquelle: W3Techs.
Richtig ist, dass NGINX unter den beliebtesten Websites im Web viel beliebter ist als Apache. Dies liegt daran, dass NGINX einen unbestreitbaren Vorteil in Bezug auf die Skalierbarkeit hat, was für Websites mit hohem Datenverkehr von entscheidender Bedeutung ist.
Außerdem kann NGINX „double duty“ als Reverse-Proxy oder Load-Balancer ausführen, wenn Sie es nicht als Webserver verwenden möchten. Mit anderen Worten, es kann viel mehr Rollen erfüllen als Apache.
Dies bedeutet jedoch nicht, dass NGINX Ihre Standardwahl sein sollte, wenn Sie einen Serverwechsel in Betracht ziehen. In den nächsten Abschnitten werden wir aufschlüsseln, was jede Software einzigartig macht.
Apache vs NGINX: 3 Hauptunterschiede
Bevor wir darüber sprechen können, welche Serverlösung für Sie die beste Option ist, müssen wir die Unterschiede aufschlüsseln. Beginnen wir mit der Behandlung von Anfragen bezüglich Apache vs. NGINX.
1. Anfrageverwaltung
Seien Sie gewarnt – hier wird es etwas technischer. Apache verwendet sogenannte Multi-Processing Modules (MPMs), um Verbindungen zu handhaben. Die Software ermöglicht Ihnen die Wahl zwischen drei Arten von MPMs:
- mpm-prefork : Dieses Modul erstellt Singlethread- Prozesse, um jede Anfrage zu verarbeiten. Jedes „Kind“ wiederum kann nur eine einzige Verbindung verarbeiten.
- mpm_worker : Dieses Modul kann Multithread-Prozesse starten, wobei jeder Thread eine Verbindung verwalten kann.
- mpm_event : Dieses Modul funktioniert größtenteils genauso wie mpm_worker , ist jedoch optimiert, um Verbindungen am Leben zu erhalten.
Ein einzigartiger Aspekt von Apache ist, dass Sie wählen können, welches Modul Sie verwenden möchten, und diese nach Bedarf austauschen. Apache verwendet standardmäßig das mpm-prefork- Modul, das sich hervorragend für eine geringe Anzahl gleichzeitiger Verbindungen eignet . Das Modul mpm_worker ist hinsichtlich der Skalierung besser, erfordert jedoch zusätzliche Serverressourcen.

Im Gegensatz dazu verwendet NGINX einen sogenannten „ereignisgesteuerten“ Ansatz. Die Software verwendet Multithread-Prozesse, wobei jeder Thread mehrere Verbindungen verarbeiten kann.
Darüber hinaus verarbeitet NGINX eingehende Anfragen asynchron. Kurz gesagt bedeutet dies, dass NGINX mehr Anfragen mit weniger Serverressourcen verwalten kann, was es in diesem speziellen Aspekt effizienter macht.
2. Serverkonfiguration
Apache verwendet .htaccess- Dateien, um spezifische Regeln für die Verarbeitung eingehender Anfragen festzulegen. Diese Dateien umfassen alles von Umleitungsregeln bis hin zu Speichergrenzen und mehr.
Mit Apache können Sie für jedes Verzeichnis in Ihrem Serverbaum individuelle .htaccess- Dateien einrichten. Um Ihnen ein Beispiel zu geben: Wenn Sie einen gemeinsam genutzten Server einrichten, können Sie jeder darauf gehosteten Website ermöglichen, ihre eigenen .htaccess- Dateien einzurichten.
Der Nachteil dieser hohen Flexibilität besteht darin, dass jede .htaccess- Datei, auf die Sie entlang eines Anforderungspfads stoßen, separat interpretiert werden muss. Das bedeutet, dass die Ausführung von Anfragen länger dauern kann.
NGINX bietet Ihnen nicht das gleiche Maß an Flexibilität bei der Konfiguration. Anstelle von Konfigurationsdateien auf direkter Ebene haben Sie eine Hauptdatei, die das Ganze regelt.
3. Module
Module sind Add-Ons, die Sie zusammen mit Ihrer Serversoftware Ihrer Wahl verwenden können, um deren Standardfunktionalität zu erweitern. Angesichts des Alters und der Popularität von Apache sollte es nicht überraschen, dass es NGINX bei der Modulauswahl überlegen ist.
Apache bietet nicht nur mehr Module, sondern es ist auch einfacher, Dokumentationen und Tutorials zu ihrer Verwendung zu finden. Darüber hinaus ermöglicht Ihnen Apache, Module nach Belieben zu installieren, zu aktivieren und zu deaktivieren, was Ihnen ein hohes Maß an Flexibilität bietet.
NGINX bietet nicht den gleichen Vorteil. Um Module zu verwenden, müssen Sie sie in den NGINX-Kern kompilieren. Darüber hinaus können Sie Module nicht deaktivieren, sobald sie kompiliert sind, was es viel schwieriger macht, Optionen auszutauschen.
Es ist wichtig zu beachten, dass NGINX Plus eine dynamische Modulfunktion enthält, mit der Sie Module nach Belieben deaktivieren und aktivieren können. Aber auch mit Plus müssen Sie diese Module noch mit NGINX-Kern kompilieren, bevor Sie sie verwenden können.
Obwohl die Modulbibliothek und Dokumentation von NGINX stetig wächst, können sie in Bezug auf das Volumen immer noch nicht mit Apache mithalten. Wenn man bedenkt, wie NGINX immer mehr Marktanteile gewinnt, wird sich dies jedoch wahrscheinlich in naher Zukunft ändern.
Die Vor- und Nachteile von Apache vs. NGINX
Inzwischen kennen Sie die Kernunterschiede zwischen Apache und NGINX. Lassen Sie uns nun eine kurze Aufschlüsselung der Vor- und Nachteile jeder Software geben.
Apache
Lassen Sie uns zunächst über die wichtigsten Vorteile der Verwendung von Apache sprechen:
- Es kann einfacher einzurichten und zu konfigurieren sein
- Dank .htaccess- Dateien erhalten Sie eine genauere Kontrolle über die Konfiguration Ihres Servers
- Die Modulauswahl ist besser und Sie können Module nach Belieben aktivieren und deaktivieren
- Sie können entscheiden, wie Sie Anfragen mit verschiedenen Modulen bearbeiten
Der Hauptnachteil der Verwendung von Apache vs. NGINX besteht darin, dass letzteres einfach besser skaliert. Wenn Sie sich noch in der Wachstumsphase Ihrer Website befinden, sollte Apache mehr als ausreichen, um den Datenverkehr zu bewältigen.
Irgendwann müssen Sie jedoch möglicherweise erwägen, Ihren Server-Stack zu aktualisieren, wenn Ihre Site dramatisch erfolgreich wird. Dies könnte bedeuten, zu NGINX zu wechseln oder es als Reverse-Proxy für Ihren Apache-Webserver zu verwenden.
NGINX
NGINX hat in Bezug auf Apache zwei klare Vorteile – Leistung und Skalierbarkeit. Genauer gesagt ist NGINX besser, wenn es um Folgendes geht:
- Bearbeitung einer großen Anzahl gleichzeitiger Anfragen
- Bessere Leistung mit weniger Hardwareressourcen
- Statische Inhalte schneller bereitstellen
Dieser letzte Teil ist der Grund, warum sich so viele Leute dafür entscheiden, NGINX als Reverse-Proxy-Lösung zu verwenden. Trotz all seiner leistungsbezogenen Vorteile ist NGINX jedoch nicht ohne Mängel.
Obwohl eine einzige Konfigurationsdatei zu kürzeren Anforderungszeiten führt, bedeutet dies auch, dass NGINX weniger flexibel ist als Apache. Dies gilt auch für Module, da die Open-Source-Version von NGINX Sie zwingt, Module zu kompilieren, um sie zu verwenden – und Sie können sie nicht deaktivieren. In der Praxis bedeutet dies, dass es viel komplexer sein kann, NGINX so einzurichten, wie Sie es benötigen, als die Verwendung von Apache.
Der Hauptgrund für die Verwendung von NGINX besteht darin, dass die Leistung Ihr Hauptanliegen ist. Irgendwann müssen beliebte Websites die großen Geschütze herausziehen, um massiven Datenverkehr ohne Ausfallzeiten, lange Ladezeiten und mehr zu bewältigen. Da NGINX Ihnen außerdem ermöglichen kann, mit weniger Hardwareressourcen bessere Leistungsergebnisse zu erzielen, kann es eine kostengünstigere Option sein.
Abschluss
Der Wechsel von Servern oder Serversoftware ist immer eine große Entscheidung. Daher sollten Sie idealerweise die Serverlösung verwenden, an der Sie langfristig festhalten werden.
Die Wahl zwischen Apache und NGINX ist nicht so eindeutig, wie es scheinen mag. In vielen Fällen liegt die Entscheidung nicht bei Ihnen, da Ihr Webhost über die zu verwendende Software entscheidet. Auf praktischer Ebene müssen Sie recherchieren und herausfinden, welche Option ein Webhost verwendet, bevor Sie sich darauf festlegen.
Haben Sie Fragen zur Auswahl zwischen Apache und NGINX? Lassen Sie uns im Kommentarbereich unten darüber sprechen!
Miniaturansicht des Artikels von ProStockStudio / shutterstock.com
