Der Apache HTTP Webserver und der Internet Information Services (IIS) Server von Microsoft waren mit einem Marktanteil von zusammen über 90 % für lange Jahre die dominierenden Webserver. Der Apache Webserver wurde zeitweise für mehr als 70 % der Webseiten weltweit genutzt. Seit der Veröffentlichung des Nginx Webservers im Jahr 2004 haben sich die Verhältnisse jedoch geändert. Der Nginx ist eine kostenlose Open Source Software und wurde ursprünglich für die Anforderungen der russischen Suchmaschine Rambler entwickelt.
Inhalt
Wofür benötigt man einen Webserver?
Ein Webserver stellt die Verbindung zwischen einem physischen Server, auf dem Webseiten gespeichert sind, und den Endgeräten der Internetnutzer her. Der Webserver verarbeitet die Anfragen von Internetnutzern und sendet die angeforderte Ressource an den Browser zurück. Die meisten Webseiten sind heute dynamisch programmiert. Die für die Erstellung einer dynamischen Webseite erforderlichen Informationen – zum Beispiel Bilder, Benutzername und Texte – werden von kleinen Programmen, den sogenannten Skripten, aus einer Datenbank ausgelesen.
Häufig verwendete Skriptsprachen sind PHP, Python oder Perl. Damit die Skripte ausgeführt und die Daten aus einer Datenbank ausgelesen werden können, wird ein sogenannter Interpreter benötigt. Der Interpreter fungiert als Schnittstelle zwischen den Skripten und dem Betriebssystem des Servers. Er übersetzt die Skripte in Computersprache, die vom Server verarbeitet werden kann. Für jede Skriptsprache benötigt man einen eigenen Interpreter.
Internetprotokolle für die Kommunikation zwischen Server und Endgeräten
Im Internet verwendet man allgemeingültige und standardisierte Protokolle für die Kommunikation zwischen Webservern und verschiedenen Endgeräten. Die Kommunikation zwischen Browsern und Webserver erfolgt über das sogenannte Hypertext Transfer Protokoll, abgekürzt HTTP oder HTTPS für die verschlüsselte Version. Das „S“ steht hierbei für „Secure“. Das HTTP / HTTPS-Protokoll wurde speziell für die Übertragung von Nachrichten über das Internet entwickelt.
Nginx – schneller Webserver mit geringem Ressourcenverbrauch
Durch sein modulares Design ist der Nginx Webserver in der Lage, die in den vergangene Jahren gestiegen Anforderungen an einen Webserver zu erfüllen. Modular bedeutet, dass Nutzer nur die Funktionen installieren können, die tatsächlich benötigt werden. Dies hat den Vorteil, dass der Server nur wenig Ressourcen verbraucht. Die modulare Architektur ermöglicht es, den Nginx Webserver je nach Bedarf als E-Mail Server oder als Proxy-Server einzusetzen. Lesen Sie hier mehr über Proxy.
Eines der populärsten Module für Nginx ist PHP-FPM. PHP-FPM ist ein sogenannter Prozessmanager, mit dem der PHP Interpreter an den Webserver angebunden wird. Ohne PHP-FPM erfolgt die Kommunikation zwischen Programmiersprache und Webserver über das sogenannte Common Gateway Interface (CGI). Der Nachteil: CGI erstellt für jede Aufgabe einen neuen Prozess. Im Gegensatz dazu nutzt PHP-FPM mehrere Interpreter im Hintergrund. Dadurch können Anfragen auf aktive Prozesse verteilt und eine Steigerung der Verarbeitungsgeschwindigkeit erreicht werden.
Worin unterscheidet sich Nginx vom Apache HTTP Webserver?
Der größte Unterschied zwischen beiden Servern besteht in der Verarbeitung von Anfragen. Der Apache Webserver erstellt für jede Useranfrage einen eigenen Thread. Jeder Thread bearbeitet immer nur eine Anforderung. Dementsprechend groß ist der Ressourcenverbrauch, wenn die Zahl der Anforderungen steigt. Im gleichen Maße sinkt die Effizienz bei der Bearbeitung der Anfragen.
Der Nginx Webserver verarbeitet Anfragen nicht einzeln, sondern bündelt diese in sogenannten Masterprozessen. Ein Masterprozess kann mehrere Tausend Anfragen in sogenannten Workerprozessen verwalten und bearbeiten. Durch die simultane Verarbeitung ist der Nginx Server dem Apache Webserver in puncto Performance und Skalierbarkeit deutlich überlegen.
Keine .htaccess Unterstützung durch Nginx
Nutzer des Apache Web-Servers verwenden häufig eine .htaccess Datei, um Passwörter für bestimmte Adressen zu definieren oder URLs umzuleiten. .htaccess Dateien werden vom Nginx Webserver nicht unterstützt. Grund dafür ist, dass eine .htaccess-Datei die Performance einer Webseite verringert. Nginx verwendet stattdessen globale Einstellungen, die für ganze Seiten oder das gesamte System gültig sind. Für die Konvertierung der in einer htaccess Datei definierten Befehle in eine für Nginx-gültige Konfiguration stehen mehrere Konverter zur Verfügung.
Die Vor- und Nachteile von Nginx
Beim Apache Webserver ist es möglich, verschiedene Module nachträglich zu installieren und einzubinden. Die Module dazu muss man nur in die Konfiguration des Servers eingetragen und anschließend laden. Im Gegensatz dazu sind Module bei Nginx fester Bestandteil des kompilierten Programms. Für eine Erweiterung bedarf es daher in der Regel eine komplette Neu-Installation des kompletten Programms.
Ebenfalls von Nachteil ist, dass die Konfiguration des Nginx mehr Erfahrung erfordert, als die Einrichtung eines Apache Web-Servers. Durch die Verwendung globaler Einstellungen ist zudem die Einrichtung mehrere unabhängiger Nutzer stark eingeschränkt.
Vorteile
Der Vorteil des Nginx Webservers ist seine Geschwindigkeit. Webseiten mit hohen Besucherzahlen im sechs- bis siebenstelligen Bereich pro Tag setzen heute bevorzugt auf die Leistungsfähigkeit des Nginx Webservers. Darunter bekannte Webseiten wie Spotify, Apple, Netflix oder Facebook. Mit einem Marktanteil von rund 67 % bei den 10.000 beliebtesten Webseiten weltweit hat der Nginx Webserver den Apache mittlerweile weit hinter sich gelassen.
Der geringe Ressourcenverbrauch des Nginx Webservers bietet für kleine Webseiten ebenfalls Vorteile. Durch die hohe Performance des Webservers kann sich die Leistung der Server Hardware verringern, ohne dass die Betreiber Einbußen bei der Geschwindigkeit der Webseiten befürchten müssen.