Was ist und macht der Nginx Webserver?
Ein Webserver hat die Aufgabe, die Kommunikation zwischen einem Server (Host) und einer Verbindung von außen (Client) zu übernehmen und als Schnittstelle zwischen beiden zu dienen. Er nimmt die Anfrage entgegen, leitet sie an das eigene System weiter und sendet die Antwort an den verbundenen Computer zurück. Bei der Software nginx handelt es sich um einen sehr flexiblen, effizienten und stabilen Webserver, der auf die Bedürfnisse von großen Webseiten mit zahlreichen parallelen Verbindungen und eine parallele Verarbeitung der Informationen zugeschnitten ist. Bei der Geschwindigkeit zeigt er große Vorteile gegenüber dem Marktführer Apache 2, da er ein anderes Konzept bei der Verwaltung und der Bearbeitung der einzelnen Prozesse verwendet. Beide Systeme haben wir bereits in diesem Artikel mit einander verglichen.
Inhalt:
Der Webserver nginx als Antwort auf Nachteile von Apache 2
Ein spezieller Webserver für Internetseiten mit extrem hohen Besucherzahlen
Die technische Funktionsweise von nginx als Webserver
Gemeinsamkeiten zwischen nginx und Apache 2 - ein modularer Aufbau
Der Webserver nginx als Antwort auf Nachteile von Apache 2
Um die Besonderheiten und die speziellen Vorteile von nginx zu verstehen, hilft es, seinen Hintergrund und seine Entstehung zu betrachten. Der Webserver wurde in seiner ersten Version im Oktober 2004 veröffentlicht und stammt von dem russischen Programmierer Igor Sysoev, der zehn Jahre zuvor sein Studium der Informatik an der Staatlichen Technischen Universität Moskau erfolgreich abgeschlossen hatte. Sysoev schnitt seinen Webserver nginx auf die Bedürfnisse der russischen Suchmaschine Rambler zu, für dessen Situation Apache 2, das bislang quasi ein Monopol innehatte, ungeeignet war.
Der Grund liegt in der Art und Weise, in der Apache 2 Webserver eingehende Verbindungen verwaltet: Der Webserver startet für jeden verbundenen Client einen eigenen Prozess, der seinerseits sowohl Speicherplatz wie Rechenperformance in Anspruch nimmt und diese exklusiv für sich reserviert. Bei einer geringen bis mittleren Anzahl von Anfragen stellt dies kein Problem dar, bei sehr vielen parallelen Verbindungen sinkt die Effizienz und damit die Geschwindigkeit wegen des steigenden Aufwands für die Verwaltung der Prozesse jedoch stetig. Konkret bedeutet dies: Je mehr Besucher gleichzeitig eine Webseite mit Apache 2 als Webserver aufrufen, desto mehr Ressourcen benötigt der Server für jeden einzelnen Besucher.
Ein spezieller Webserver für Internetseiten mit extrem hohen Besucherzahlen
Für eine Webseite mit einem extrem hohen Aufkommen an Besuchern und gleichzeitig mit relativ kurzer Verweildauer - Bedingungen, die nahezu perfekt auf eine Suchmaschine zutreffen - ist das Konzept von Apache 2 denkbar schlecht geeignet. Um deren Anforderungen zu erfüllen, muss ein Webserver vor allem folgende Bedingungen erfüllen:
- Sehr hohe Effizienz in der Speicherverwaltung
- Parallele Bearbeitung von zahlreichen Verbindungen
- Hohe Geschwindigkeit bei der Übergabe von Informationen
- Flexibles Design für Differenzierung von Anfragen z. B. nach Herkunft
- Hohe Performance der Software
- Möglichkeit zur Erweiterung um zusätzliche Funktionen
- Unterstützung für Verteilung der Last auf mehrere Server
- Kompatibilität mit unterschiedlichen Skriptsprachen
- Hohe Stabilität selbst unter kritischen Bedingungen und bei knappen Ressourcen
Aus diesen Anforderungen entstand nginx als modularer Webserver, der auch bei hohen Lasten und simultanen Anfragen von weit über 10.000 oder 100.000 Clients diese effizient verwaltet und mit hoher Geschwindigkeit bearbeitet.
Informiere dich, wie Nginx gegenüber anderen Webservern abschneidet:
Nginx vs. LiteSpeed
Nginx vs. Apache
Die technische Funktionsweise von nginx als Webserver
Ein wesentlicher Unterschied zwischen nginx und Apache 2 besteht in der Verwaltung der Prozesse, die die Verbindung zu den Clients aufrechterhalten, bis die Kommunikation von einer Seite beendet wird. Apache 2 startet für jeden Client einen eigenen Kindprozess, um ihn von den anderen zu isolieren und dadurch Stabilität zu schaffen. Im Gegensatz dazu bündelt der Webserver nginx die Anfragen in einer Instanz und ist in der Lage, mehrere Tausend von ihnen durch einen einzigen Kindprozess zu verarbeiten. Dadurch beseitigt es einen der größten Nachteile von Apache 2 - den mit Zunahme der Besucher exponentiell wachsenden Rechenaufwand, der ausschließlich für die Ressourcenverwaltung benötigt wird und den Webserver bei Geschwindigkeit und Effizienz immer stärker einschränkt. Ein neuerer Konkurrent, der ebenfalls auf Geschwindigkeit setzt, ist der LiteSpeed Webserver.
Mehr Informationen zur Verteilung der Marktanteile unter den Webservern sind unserer Webserver Übersicht zu entnehmen.
Gemeinsamkeiten zwischen nginx und Apache 2 - ein modularer Aufbau
Um die Performance der Software zu optimieren, muss ein Webserver in seiner Basis möglichst schlank sein und sparsam mit den vorhandenen Ressourcen umgehen. Gleichzeitig sollte er sich an unterschiedliche Umgebungen und Aufgaben anpassen können, um die notwendige Flexibilität für wechselnde Bedingungen und Herausforderungen zu gewährleisten. Dies erreichen sowohl Apache 2 wie auch nginx durch einen modularen Aufbau, bei dem das Hauptprogramm je nach Bedarf durch unterschiedliche Erweiterungen individualisiert und um unterschiedliche Funktionen und Fähigkeiten ergänzt werden kann. Diese Module umfassen zahlreiche unterschiedliche Kategorien und dienen speziellen Zwecken wie zum Beispiel:
- Lokalisierung: Verarbeitung von Anfragen entsprechend dem Standort des Clients
- Interfaces: Anbindung an externe Interpreter wie Skriptsprachen
- Kompression: Effizienter Datenverkehr durch Komprimieren der Information
- Multimedia: Auslieferung von Bildern, Videos oder Streams über spezielle Protokolle
- Sicherheit: Identifizierung und Authentifizierung von Clients
- Verschlüsselung: Anwendung von sicherer Kryptografie wie SSL und TLS
- Monitoring: Überwachung und Logging für den Webserver
- Um- und Weiterleitung: Interne Transkribierung von Adressen nach definierten Regeln
- Kommunikation: Erweiterung um Unterstützung für Mail- oder Chatprotokolle
Zahlreiche Module wie etwa die Verschlüsselung entsprechend dem SSL-Standard gehören fest zu der Grundausstattung von nginx, andere müssen auf Wunsch in den Webserver integriert werden. Dabei zeigt sich ein weiterer, deutlicher Unterschied zwischen nginx und Apache 2. Wegen seines statischen Aufbaus unterstützt nginx - von wenigen Ausnahmen abgesehen - nicht das nachträgliche Laden von Modulen als externe Programmteile. Sie müssen bei der Kompilation von nginx bereits fest integriert werden, während Apache 2 diese unabhängig von seinem Kern zu einem beliebigen Zeitpunkt einfügt, aktiviert oder entfernt. Einige Funktionen, wie etwa .htaccess bei Nginx stehen allerdings nicht zur Verfügung.
Foto: dlohner pixabay.com
Schreibe einen Kommentar
- Webserver
Tags zu diesem Artikel
Weitere Webhoster
Weitere interessante Artikel
Was ist eine Rewrite Engine und wofür ist sie da?
Wir zeigen Ihnen was eine Was ist eine Rewrite Engine ist und wofür sie da ist.
Nginx vs. LiteSpeed: Welcher Webserver ist besser?
Wie unterschieden sich die beiden bekannten Webserver Varianten und welche ist für das eigene Onlineprojekt besser geeig...
Die besten Webserver 2024 im Vergleich
Welche Webserver sind am beliebtesten? Hier im Vergleich nehmen wir die besten Lösungen genauer unter die Lupe.
Im Jahr 2006 riefen wir hosttest ins Leben, um den Webhosting Markt im DACH-Raum transparenter zu machen. Mit derzeit über 400 Webhostern und über 10.000 Angeboten bieten wir dir die beste Grundlage, den für dich passenden Anbieter für Hosting-Leistungen zu finden.
Seit 2015 küren wir zudem alljährlich unsere Webhoster des Jahres und würden uns in Zukunft auch über deine Stimme freuen.
Mehr über uns...