Nginx vs Apache Benchmark


Antwort 1:

Apache

Mit einem Marktanteil von 42% (laut einer NetCraft-Umfrage im April 2014) ist Apache der am häufigsten verwendete Webserver. Es handelt sich um kostenlose Open-Source-Software, die auf jedem Betriebssystem verwendet werden kann, einschließlich Linux, Unix, Windows und Mac OS.

Die Fehlerbehebung und die Entwicklung neuer Funktionen werden von der Entwicklergemeinde übernommen und von der Apache Software Foundation verwaltet, einem gemeinnützigen Unternehmen, das den Apache-Webserver unterstützt.

Apache ist ein sehr funktionsreicher Webserver. Funktionen werden als Module eingeführt, die die Kernfunktionalität erweitern. Einige der Module werden mit Apache selbst geliefert, während andere manuell installiert werden können. Da der Code geöffnet ist, kann jeder ein neues Modul mit zusätzlichen Funktionen erstellen und veröffentlichen.

Der Apache-Webserver ist Teil des LAMP-Stacks - er wird normalerweise auf Linux-Betriebssystemen installiert, während die Anwendungen in PHP mit MySQL-Datenbanken entwickelt werden.

Obwohl der Apache-Webserver im Allgemeinen eine gute Leistung aufweist, verbraucht er aus den beiden Hauptgründen viel CPU und Speicher. Ein Grund ist eine große Anzahl enthaltener Funktionen, die nicht verwendet werden, während der andere die Tatsache ist, dass es sich um einen prozessbasierten Server handelt. Das bedeutet, dass für jede Verbindung ein separater Thread erforderlich ist.

Microsoft IIS

Microsoft IIS ist ein Webserver mit dem zweitgrößten Marktanteil (32% gemäß derselben oben genannten Umfrage). Der Server selbst ist kostenlos, kann jedoch nur unter Windows-Betriebssystemen ausgeführt werden, wodurch indirekte Lizenzkosten entstehen.

IIS ist eine proprietäre Software, dh der Code ist geschlossen und nicht öffentlich verfügbar. Neue Funktionen, Fehlerbehebungen und Support werden von Microsoft bereitgestellt. Obwohl die Entwicklung nicht so schnell ist wie bei der Community-Unterstützung, kann sie zuverlässiger sein.

Microsoft IIS-Handles bieten eine Reihe von Funktionen. Ähnlich wie bei Apache sind Funktionen als Erweiterungen enthalten. IIS-Erweiterungen werden jedoch nur von Microsoft entwickelt.

Im Gegensatz zu Apache wird IIS unter Windows-Betriebssystemen installiert und seine Anwendungen verwenden ASP.NET | Open-Source-Webframework für .NET- und MSSQL-Datenbanken.

Nach einigen Tests ist IIS schneller als Apache (obwohl immer noch langsamer als Nginx). Es verbraucht weniger CPU, hat eine bessere Antwortzeit und kann mehr Anforderungen pro Sekunde verarbeiten. Es ist jedoch zu beachten, dass die Tests nicht zu 100% zuverlässig sind, da sie normalerweise auf einem anderen Softwarestapel ausgeführt werden (IIS-Anwendungen verwenden .NET Framework unter Windows, während Apache normalerweise PHP-Anwendungen unter Linux-Betriebssystemen ausführt).

NGINX

NGINX wurde als Antwort auf die C10K-Herausforderung erstellt, mindestens 10.000 gleichzeitige Clientverbindungen auf einem einzelnen Server zu verarbeiten. NGINX verwendet eine asynchrone, ereignisgesteuerte Architektur, um diese enormen Mengen an Verbindungen zu verarbeiten. Diese Architektur macht die Handhabung hoher und schwankender Lasten in Bezug auf RAM-Auslastung, CPU-Auslastung und Latenz viel vorhersehbarer.

Der Hauptunterschied zwischen NGINX und Apache in Bezug auf die Ereignismodelle besteht darin, dass NGINX keine zusätzlichen Arbeitsprozesse pro Verbindung einrichtet. In den meisten Fällen wird in der empfohlenen NGINX-Konfiguration ein Arbeitsprozess pro CPU ausgeführt, wodurch die Effizienz der Hardware maximiert wird.

NGINX verfügt außerdem über zahlreiche Funktionen und kann verschiedene Serverrollen ausführen:

  • Ein Reverse-Proxy-Server für das HTTP-, HTTPS-, SMTP-, POP3- und IMAP-Protokoll
  • Ein Load Balancer und ein HTTP-Cache
  • Ein Frontend-Proxy für Apache und andere Webserver, der die Flexibilität von Apache mit der guten statischen Inhaltsleistung von NGINX kombiniert

NGINX unterstützt FastCGI- und SCGI-Handler für die Bereitstellung dynamischer Inhaltsskripte wie PHP und Python. Es verwendet den LEMP-Stack: eine Variation von LAMP unter Verwendung der phonetischen Schreibweise von NGINX (Linux, "En-juhn-ex", MySQL, PHP).

indiaaccess.com


Antwort 2:

Ich war ein lebenslanger Windows-Programmierer. Ich denke, die Antwort hängt mehr von dem Ökosystem ab, in dem Sie sich befinden. Wenn Sie mit .NET codieren, ist es nicht sinnvoll, sich von IIS zu entfernen. Die Benutzeroberfläche ist benutzerfreundlich, die Skriptfähigkeit ist gut dokumentiert und das gesamte Entwickler-Ökosystem ist sehr ausgereift.

Ebenso könnte Apache eine bessere Option für PHP oder einen Java-Stack sein.

Aus Sicht der Sicherheitslücke hat Microsoft seine Produkte in den letzten 10 Jahren sehr aggressiv über das Windows Update-System gepatcht. Ich freue mich zu sehen, dass sich die meisten Banken für den Microsoft-Stack entschieden haben.

Aus Sicht der Leistung würde ich höchstens geringfügige Unterschiede erwarten. Meiner Meinung nach sollte die Leistung das letzte Kriterium für die Auswahl einer Plattform sein. Die Kosten für die Softwareentwicklung übersteigen die Hardware bei weitem.


Antwort 3:

Während IT Central Station noch keine Bewertungen für Nginx hat, finden Sie hier echte Benutzerbewertungen für Apache und IIS:

Apache:

Produktbewertung für Apache Web Server

IIS:

Produktbewertung für IIS

Benutzer, die an diesen Lösungen interessiert sind, lesen auch Bewertungen für Oracle WebLogic Suite. Dieser Benutzer schreibt: "Die Weboberfläche ist recht einfach zu bedienen, aber für diejenigen, die sie möchten, kann die Mehrzahl der Befehle über Skripte WLST ausgeführt werden." Den Rest seiner Rezension können Sie hier lesen:

Überprüfung der WebLogic Suite durch einen Integrator

Ich hoffe das ist hilfreich.


Antwort 4:

IIS funktioniert am besten für Webanwendungen, die für das Microsoft Windows-Betriebssystem entwickelt wurden. Apache ist für viele Funktionen sehr robust und Nginx ist ebenfalls robust, wurde jedoch für leistungsstarke Websites mit hohem Datenverkehr entwickelt. Nginx benötigt eine separate Software, um PHP-Skripte zu verarbeiten, während Apache dies nativ kann.


Antwort 5:

Für die Bereitstellung ist Apache immer noch die Nummer 1 unter den Nginx-Unternehmen und IIS belegt den 2. Platz. Hulu und Netflix laufen auf Nginx.

Nginx-Wettbewerber - DatanyzeWebserver Microsoft IIS und NGINX kämpfen um den zweiten Platz ZDNet

Antwort 6:

Kerry Watsons Link zur Bewertung wurde für statische Websites erstellt, nicht für dynamische Websites. Natürlich sind viele Webinhalte (nach Byteanzahl, wenn nicht nach Wert) statisch in Form von Bildern, Flash-Animationen usw.

Ich bin mir nicht sicher, wie portabel die Content-Management-Systeme zwischen Windows und Linux sind. Die Suche nach einem Weg zum "Benchmarking" von Webservern, die ein Content-Management-System für alle Betriebssystemplattformen bereitstellen, führt wahrscheinlich zu einem nutzlosen Benchmark, da Sie jetzt den Datenbankserver sowie alle OS-spezifischen Funktionen, die Content-Management-Module möglicherweise in den Mix einbeziehen haben.

EDIT: Richtige Zuordnung der Bewertung.


Antwort 7:

Wenn man die Architektur und im Fall von Nginx den Quellcode kennt, kann dies nicht richtig sein. Auf keinen Fall auf der Welt ist NGINX langsamer als IIS für ähnliche Anforderungen.


Antwort 8:

IIS war der schnellste der drei in einem Benchmarking-Test 2011:

Verknüpfung:

http://www.webperformance.com/load-testing/blog/2011/11/what-is-the-fastest-webserver/