Über 5.500 Erfahrungsberichte von über 400 Hosting-Anbietern

Was ist und macht der Nginx Webserver?

Hosttest.de
Autor: HOSTTEST-Redaktion   |  12.09.2019


nginx WebserverEin 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 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 das System 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.

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.

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.

Foto: dlohner pixabay.com



Weitere Webhoster


Weitere interessante Artikel

PHP Version 7 und Geschwindigkeit

Bereits vor über einem Jahr, im Dezember 2015 ist die Skriptsprache PHP in der neuen Version 7 erschienen. Da die Implem...

Webhoster im Fokus Anzeige
Aktuelle Ausschreibungen
Neueste Bewertungen
kevin N. hat BERO-HOST.DE bewertet
Mirko hat webgo bewertet
Mathes hat webgo bewertet
Marcel Z. hat webgo bewertet
Samuel M. hat lima-city bewertet
Guido K. hat webgo bewertet
Veronika H. hat lima-city bewertet
Thorsten G. hat webgo bewertet
Marlene H. hat ServMedia.de bewertet
Karin hat Pixel X e.K. bewertet
Timo H. hat lima-city bewertet
Markus Z. hat lima-city bewertet
Rainer B. hat lima-city bewertet
Uwe S. hat lima-city bewertet
Henny J. hat Millennium Arts ISP bewertet
Bernd hat Rainbow-Web.com bewertet
Andreas hat lima-city bewertet
Marco hat lima-city bewertet
Mario L. hat webgo bewertet
Sebastian B. hat Onyxhosting.de bewertet

Mediapartner:
Webmaster Eye
hosttalk.de
Wir konnten bereits Hunderttausenden Webmastern helfen den passenden Hosting-Anbieter zu finden.
Über Hosttest.de

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...