Nginx vs. Apache: Welcher ist der beste Webserver?

Veröffentlicht: 2021-12-30

Obwohl es viele verschiedene Arten von Serversoftware gibt, werden Sie die Konkurrenten oft auf Nginx vs. Apache reduzieren. Denn beide bieten Spitzenleistung für viele verschiedene Serverkonfigurationen und passen für bestimmte Anwendungen besser als die anderen.

Trotzdem sollten Sie überlegen, welche davon für Ihre Bedürfnisse sinnvoller ist. Es gibt ein paar verschiedene Kategorien, die Sie sich ansehen sollten, wie z. B. Unterstützung des Betriebssystems (OS), Sicherheit, Dokumentation und (natürlich) Leistung.

In diesem Beitrag werden wir Nginx und Apache in verschiedenen Bereichen vergleichen. Am Ende fassen wir unsere Ergebnisse zusammen und geben Ihnen die Informationen, die Sie benötigen, um die richtige Option auszuwählen.

Einführung in Nginx und Apache

Bevor wir uns mit den tiefen Details der einzelnen Servertypen befassen, lassen Sie uns Ihnen einen Überblick über Nginx und Apache geben. Sobald wir zum nächsten Abschnitt kommen, erfahren Sie mehr über einige der Anwendungsfälle von beiden und wo Sie sie möglicherweise „in freier Wildbahn“ sehen.

#Nginx vs. #Apache: Welcher ist der richtige Webserver für Sie?
Klicken Sie hier, um zu twittern

Nginx

Das Nginx-Logo.

Im Vergleich zu Apache ist Nginx ( ausgesprochen „Engine X“ ) ein relativer Neuling in der Welt der serverseitigen Technologie. Das Entwicklerteam hat es sich jedoch zur Aufgabe gemacht, die Limitationen von Apache-Systemen auszuweiten.

Es ist eine Open-Source-Lösung, die viele Benutzer wegen ihrer Stabilität und Skalierbarkeit in Betracht ziehen. Dies liegt (teilweise) an seiner ereignisgesteuerten Architektur – dazu später mehr. Tatsächlich bestand ein Teil des Ziels für die ursprüngliche Nginx-Version darin, 10.000 Verbindungen gleichzeitig verarbeiten zu können. Dies war bereits 2004 aufgrund des damals schnell wachsenden Internets notwendig.

Im Großen und Ganzen mögen Systemadministratoren und Websitebesitzer Nginx, weil es leistungsfähig ist, hervorragend mit statischen Dateien funktioniert und die Funktionen eines Load Balancers und eines „Reverse Proxy“ ausführt. Diese sind alle relevant für Betriebszeit, Geschwindigkeit und Sicherheit.

Apache

Das Logo des Apache HTTPS-Servers.

Apache ist so etwas wie der „alte Mann“ der Webserver-Technologie. Es ist fast so alt wie das Web selbst – seit 1995 ist Apache die Software im Kern von Tausenden, wenn nicht Millionen von Servern.

Apache war lange Zeit eine dominierende Technologie unter „Systemadministratoren“. Dafür gibt es viele Gründe – einige sind leistungsbedingt, andere gewöhnungsbedürftig. Ungeachtet dessen werden Apache-Server häufig dort eingesetzt, wo es auf Konfigurationen ankommt.

Sie finden Apache als vorinstallierte Software auf allen Linux-Distributionen, also ist es eine ideale Lösung für dieses Betriebssystem. Obwohl es eine andere Architektur als Nginx verwendet, bietet es dennoch Leistung, Skalierbarkeit und fantastische Dokumentation.

Viele Systemadministratoren mögen auch die anpassbare Natur von Apache und wie Sie einen Server zu Ihrem eigenen machen können, indem Sie verschiedene Module laden.

Die allgemeinen Anwendungsfälle für Nginx vs. Apache

Es ist fair zu sagen, dass Apache ein „Alleskönner“ ist, wenn es um die Bereitstellung von Websites geht. Dies ist jedoch ein gemischter Segen. Ja, Apache-Server können fast alles, was Nginx kann, aber es geht auf Kosten von weniger leistungsfähigem Code. Hier spielt das Alter eine Rolle.

Da Apache zu einer Zeit auf den Markt kam, bevor wir einige der fortschrittlicheren Anwendungen für Webserver hatten, konnte die Codebasis nicht das leisten, was sie zum Bereitstellen moderner Websites benötigte. Während diese Probleme jetzt nicht unbedingt Anlass zur Sorge geben, funktioniert eine Lösung wie Nginx mit Blick auf das moderne Web.

Daher ist Apache fantastisch als einfach zu konfigurierender Server für Anwendungen wie Shared Hosting. Seine Integrationen sehen es auch als lokale Entwicklungsserversoftware als Teil des Linux-, Apache-, MySQL- und PHP-Stacks (LAMP) vor.

Die Logos für alle Teile eines LAMP-Stacks: Linux, Apache, MySQL und PHP.

Im Gegensatz dazu verfügt Nginx über eine ausgereiftere Softwarebasis mit größerer Rationalisierung im Vergleich zu Apache. Es ist gut, wenn Stabilität und Sicherheit wichtige, grundlegende Elemente sind. Sie werden feststellen, dass ein Nginx-Server nicht so konfigurierbar ist wie andere Typen, und das bedeutet, dass Sie weniger auf seinen Kern zugreifen.

Darüber hinaus ist es nicht so modular wie Apache, was es weniger geeignet für eine Situation macht, in der Sie eine Serveranpassung vornehmen müssen.

Nginx vs. Apache: Wie beliebt jeder Servertyp ist

Lange Zeit glich Server-Software einem Ein-Pferde-Rennen. Apache war einige Jahre lang eine dominierende Kraft und hält immer noch einen riesigen Marktanteil. Aus diesem Grund werden Sie feststellen, dass es viele Integrationen und Unterstützung für Apache-Server sowie eine erstklassige Dokumentation gibt.

Dies ist ein weiterer Grund, sich für Apache zu entscheiden und trägt zu seiner weiteren Verwendung bei. Nginx ist jedoch eine Serversoftware mit einem massiven eigenen Marktanteil. Im Laufe der Zeit nimmt die Nginx-Nutzung langsam zu, bis zu dem Punkt, dass es jetzt die dominanteste Webserver-Technologie auf dem Markt ist, wenn auch nicht sehr.

Mit Blick auf die Zukunft würden wir vorschlagen, dass Apache im Laufe der Zeit weniger genutzt wird, da Nginx viel von dem bietet, was Systemadministratoren in einem Webserver benötigen. LiteSpeed ​​Web Server und Cloudflare Server sind jedoch am Horizont und kommen mit einer wachsenden Benutzerbasis und starker Unterstützung. In ein paar Jahren könnte dieser Vergleich Nginx mit einem dieser jüngeren Emporkömmlinge vergleichen.

Nginx vs. Apache: Eine technische Aufschlüsselung der Features und Funktionen

Die nächsten Abschnitte behandeln eine Reihe technischer Aspekte von Nginx vs. Apache. Obwohl wir nicht alles abdecken können, geben wir den wichtigsten Bereichen ausreichend Zeit. Da diese die Kernelemente beider Servertypen darstellen, haben Sie in jedem Fall mehr als genug Anhaltspunkte, wenn es um die Wahl der richtigen Software für Sie geht.

1. Verbindungs- und Anfragebehandlung

Es ist wichtig zu wissen, wie ein Server mit Verbindungen umgeht, da dies seine „Kernwährung“ ist. Es ist fraglich, aber wenn Leute versuchen, die relativen Vorzüge von Nginx vs. Apache zu diskutieren, spielt die Handhabung der Verbindung eine große Rolle in der Wahrnehmung.

Nginx

Nginx ist „asynchron“ und „ereignisgesteuert“, was bedeutet, dass es mehrere Anfragen gleichzeitig verarbeiten und verarbeiten kann, solange Ressourcen verfügbar sind. Es erzeugt „Worker-Prozesse“, um die eingehenden Verbindungen zu handhaben, von denen es Tausende gleichzeitig erwartet. Dies sind die „Wasserträger“ für den Rest des Servers.

Beispielsweise hört jeder Worker-Prozess auf Prozessereignisse und Verbindungen und fügt sie einer Endlosschleife hinzu. Von dort aus kann der Server jedes Ereignis verarbeiten und nach Abschluss entfernen. Der Ablauf eines Nginx-Servers bietet eine inhärente Skalierbarkeit, und die asynchrone, nicht blockierende Architektur dient auch dazu.

Apache

Im Gegensatz dazu verarbeitet Apache Ereignisse einzeln durch eine Reihe von Multi-Processing-Modulen (MPMs). Ein Systemadministrator wählt die für die Aufgabe am besten geeignete Verbindungsarchitektur aus, von denen es einige gibt.

Das Modul mpm_prefork ist weit verbreitet. Dies erzeugt untergeordnete Prozesse für jedes Ereignis und verarbeitet jeweils nur eine Verbindung. Wenn die Anzahl der Prozesse höher ist als die Anzahl der Anfragen, fällt es Ihnen schwer, den Unterschied zwischen Nginx und Apache in Bezug auf die Leistung zu erkennen.

Diese Art von Situation ist jedoch selten, und ein Apache-Server wird in vielen Fällen eine höhere Anzahl von Anforderungen als Prozesse sehen. Außerdem lässt sich dieses MPM aufgrund der Speichernutzung nicht gut skalieren.

Für diejenigen, die mit PHP arbeiten, ist mpm_prefork die einzige sichere Möglichkeit, mit dem Interpreter-Modul mod_php zu arbeiten. Trotz der Nachteile wird dies das MPM sein, das ein WordPress-Entwickler wählen wird, wenn er auf einem Apache-Server bereitstellen muss.

Sie werden auch die Module mpm_worker und mpm_event sehen. Diese führen einen ähnlichen Vorgang aus und lassen sich besser skalieren, da sie mehrere Prozesse pro Sammlung von Threads erzeugen können.

Diese Reihe von MPMs zeigt, wie flexibel Apache sein kann, trotz der Nachteile für die Leistung in einigen Fällen.

Anfragebehandlung für statische vs. dynamische Inhalte

Bevor wir fortfahren, sollten wir statische und dynamische Inhalte für jede Serversoftware erwähnen. Sie werden lesen, dass Nginx keine dynamischen Inhalte verarbeiten kann, was Ihnen Anlass zur Sorge geben könnte. Tatsächlich verarbeitet Nginx diese Art von Inhalten nicht auf native Weise. Stattdessen sendet es ihn an einen externen Prozessor (z. B. einen Cache) und wartet dann auf seine Rückkehr, bevor er den Inhalt weiterschiebt.

Für die Entwicklung richtet ein Systemadministrator hierfür eine Lösung wie Memcached ein. Dieser Ansatz hat Nachteile, nämlich in Bezug auf die Leistung. Die Vorteile für die Leistungsaufwände für jeden Teil der Kette machen dies jedoch zunichte. Nginx muss sich nicht um die Bearbeitung dieser Anfragen kümmern und kann sich so effizienter auf seine Aufgabengebiete konzentrieren.

Das MPM-System von Apache ermöglicht es, sowohl statische als auch dynamische Inhalte zu verarbeiten, ohne dass andere Module erforderlich sind. Für dynamische Inhalte bettet Apache einen Sprachprozessor in jeden Worker ein. Es ist ein einfacher Ansatz, der gut funktioniert. Sie können Module auch austauschen, wenn Sie eine Änderung vornehmen müssen.

2. Konfiguration des Servers

Einer der offensichtlicheren Unterschiede zwischen Nginx und Apache ist die Konfiguration der einzelnen Server. Nginx verwendet einen zentralisierten Ansatz, was bedeutet, dass ein Benutzer keine Möglichkeit hat, einen Server außerhalb einer Hauptdatei zu konfigurieren. Obwohl dies wie ein Nachteil erscheint, gibt es viele Vorteile:

  • Der Serveradministrator ist für die globale Sicherheit verantwortlich, wodurch der Zugriff auf den Server als Ganzes verschärft wird.
  • Ein zentralisierter Server hat eine höhere Leistung als andere Typen. Dies liegt daran, dass Nginx keine Anfragen verarbeiten muss, um in jedem Verzeichnis nach Konfigurationsdateien zu suchen.
  • Hier gibt es einen Dominoeffekt, da es keine Überschreibungen für den Server aus mehreren Bereichen gibt, wodurch die Anforderungszeiten weiter niedrig gehalten werden.

Eine Möglichkeit, wie ein Laie weiß, dass er einen Apache-Server verwendet, ist das Vorhandensein von .htaccess -Dateien. Dies sind Konfigurationsdateien, die Sie fast überall auf Ihrem Server hinzufügen können. Apache überprüft jedes Element eines Pfads auf eine .htaccess -Datei, wenn eine Anfrage gestellt wird.

Eine .htaccess-Datei mit einigen Rewrite-Regeln – Vergleich zwischen Nginx und Apache

Dies ist fantastisch für Benutzer, die ihren Teil des Servers personalisieren möchten, aber eine Katastrophe bedeuten könnten, wenn eine der Anweisungen Leistungs- oder Sicherheitsprobleme verursacht. Dieser dezentrale Ansatz ist einer der Gründe, warum Apache beim Shared Hosting verwendet wird. Dies ist auch ein Grund, warum ein Content-Management-System (CMS) wie WordPress auf Apache-Servern eine gute Leistung bietet.

3. Verdolmetschung anfordern

Ein wesentlicher Unterschied zwischen Nginx und Apache, der nicht offensichtlich erscheint, ist die Interpretation von Anfragen. In einer Nussschale:

  • Nginx interpretiert und ordnet Anfragen mithilfe eines Uniform Resource Identifier (URI) für jede Komponente zu.
  • Apache kann auch URIs verwenden, um Anfragen zu interpretieren, aber es ist üblicher, eine dateibasierte Pfadstruktur zu sehen.

Da Apache in erster Linie ein Webserver ist, verwendet er die Blöcke <Directory> , <Files> oder <Location> , um Ressourcen zu definieren. Das Schlüsselkonzept hier ist, dass alles, was Apache „sieht“, mit dem Webserver zusammenhängt, sodass innerhalb des Ressourcenpfads keine Mehrdeutigkeit besteht. Stellen Sie sich einen Dokumentenbaum vor, und so „visualisiert“ Apache das Dateisystem des Servers.

Eine Apache-Konfigurationsdatei, die den Dateisystemschutz für bestimmte Verzeichnisse zeigt – Vergleich zwischen Nginx und Apache

Im Gegensatz dazu hat Nginx viele Anwendungsfälle, wie z. B. einen Load Balancer, einen Proxy-Server und einen Webserver. Aus diesem Grund müssen Anfragen als URI kommen, damit Nginx sie verarbeiten kann. Beispielsweise verwendet Nginx server und location : Ersteres interpretiert den angeforderten Host und letzteres passt die URI-Teile danach an. Die gesamte Anfrage wird zu einem URI.

Eine Nginx-Konfigurationsdatei – Vergleich zwischen Nginx und Apache

Insgesamt ist ein URI für Nginx flexibler, da er sich an jede Funktion anpassen kann, die er ausführt. Trotzdem funktioniert das System von Apache, da es nur die Rolle eines Webservers erfüllen muss.

Nginx vs. Apache: Welches sollten Sie für Ihren Server im Jahr 2022 wählen?

Die allgemeine Antwort auf die Frage Welche Serversoftware soll ich wählen? ist einfach: Es ist das, was Ihr Hosting-Provider anbietet. In vielen Fällen haben Sie keine Wahl. Wir stellen fest, dass viele Webhoster demselben Muster folgen, das Sie verwenden sollten, wenn Sie sich zwischen Nginx und Apache entscheiden möchten:

  • Wenn Sie einen Server betreiben möchten, der ständig konfiguriert werden muss, oder wenn Sie Benutzern eine Konfigurationsauswahl geben möchten, ist Apache genau das Richtige für Sie.
  • Wenn Sie jedoch hervorragende Leistung und felsenfeste Sicherheit bieten und Konfigurationen und nicht Ihre Benutzer verwalten möchten, ist Nginx der richtige Weg.

Wenn es um die Leistung geht, kann Apache aufgrund seiner inhärenten Architektur mehr Speicher beanspruchen. Nginx wird in Situationen mit hohem Verkehrsaufkommen besser sein, insbesondere wenn es mit vielen statischen Inhalten umgehen muss.

Wenn Sie also auf Caching zum Speichern und Bereitstellen von Inhalten angewiesen sind, könnte Nginx die beste Option sein. Denken Sie jedoch daran, dass Nginx keine dynamischen Inhalte bereitstellen kann, sodass Sie abhängig von der Effizienz des Proxys, den Ihr Server verwendet, einen stärkeren Leistungseinbruch erleiden.

Zur Spitze gehen

Fazit

Es gibt viele Bereiche von WordPress (und das Betreiben einer Website), die eine fast überwältigende Auswahl bieten. Das ist die Natur des Tieres. Es hilft jedoch nicht, wenn Sie Ihre Website schnell live schalten müssen.

#Nginx vs. #Apache: Welcher ist der richtige Webserver für Sie?
Klicken Sie hier, um zu twittern

Die Wahl des Servertyps ist eine entscheidende Entscheidung an vorderster Front, auf die Sie besonders achten sollten. Nginx vs. Apache ist ein gängiger Vergleich, da beide in bestimmten Situationen Vorteile bieten.

Unserer Meinung nach kann Nginx die meisten Basen mit höherer Leistung abdecken, was es für die meisten WordPress-Benutzer zur besseren Option macht. Aus diesem Grund haben sich viele der beliebten leistungsorientierten WordPress-Hosts auf einen reinen Nginx-Server-Stack umgestellt, einschließlich Kinsta und Flywheel.

Unabhängig davon können Sie sicher alles verwenden, was Ihr Host anbietet, wenn Sie diese Wahl nicht haben, und die meisten WordPress-Sites werden mit beiden Webservern völlig in Ordnung sein.

Wo sitzen Sie auf dem Zaun zwischen Nginx und Apache? Lassen Sie es uns im Kommentarbereich unten wissen!

Kostenlose Anleitung

5 wichtige Tipps zur Beschleunigung
Ihre WordPress-Seite

Reduzieren Sie Ihre Ladezeit sogar um 50-80 %
nur indem Sie einfache Tipps befolgen.

Kostenloser Leitfaden herunterladen