Das Web 2.0 hat sich in den letzten Jahren rasant weiterentwickelt und stellt bestehende Softwarelösungen für Webserver stetig vor neue Herausforderungen. Die Softwaresysteme müssen sekündlich eine enorme Datenmenge verarbeiten und diese jederzeit verschlüsselt sowie in möglichst kurzer Zeit bereitstellen. Open-Source-Webserver wie NGINX können Ihnen dabei helfen, diese Anforderungen bestmöglich zu erfüllen.
In diesem Beitrag erfahren Sie, welche Funktionen die Open-Source-Software NGINX bietet und wo die grundlegenden Unterschiede zum Apache-Server liegen.
Was ist NGINX?
NGINX ist ein unter der BSD-Lizenz veröffentlichte Open-Source-Software, die Webserver, Reverse Proxy sowie E-Mail-Proxy umfasst. Ausgesprochen wird NGINX wie „Engine X“.
2004 wurde die Anwendung vom russischen Software-Ingenieur Igor Sysoev entwickelt, um den Datenverkehr zu optimieren und Leistungsprobleme zu vermeiden. Neben Apache zählt NGINX zu den beliebtesten Software-Lösungen für Webserver.
NGINX: Anwendungen und Funktionen
Obwohl sich Apache in den meisten Ländern Westeuropas als Standard für Webserver etabliert hat, konnte sich NGINX in diesem Jahr laut w3techs erstmals als beliebteste Webserver-Lösung weltweit durchsetzen. Unter den Top-1000-Webseiten laufen rund 47 Prozent auf dem NGINX-Server, nur 19 Prozent laufen auf Apache.
Diese Entwicklung könnte in erster Linie daran liegen, dass die Funktionen von NGINX den Bedürfnissen des Web 2.0 besser gerecht werden.
Schließlich ist diese Software besonders auf Webseiten ausgelegt, die einen hohen Datenverkehr stemmen müssen. Kein Wunder also, dass beliebte Plattformen wie Starbucks, WordPress und Netflix auf NGINX setzen.
Obwohl beide Webserver-Konkurrenten modular aufgebaut sind und verschiedene Funktionen mit sich bringen, gibt es deutliche Unterschiede im Aufbau. Zu den vielversprechendsten Funktionen von NGINX zählen die folgenden:
-
Reverse Proxying sorgt dafür, dass NGINX als Reverse-Proxy-Server zur Web-Beschleunigung genutzt werden kann.
-
Der Load Balancer verteilt effektiv die Lasten auf dem Server.
-
Video-Streaming sorgt für eine hohe Performance bei Video-Inhalten.
-
FastCGI-Unterstützung mit Caching ermöglicht, dass Inhalte besonders schnell ausgeliefert werden können.
-
TLS/ SSL-Verschlüsselungszertifikat gewährleistet einen sicheren Datentransfer.
Der größte Unterschied zu Apache liegt in der ereignisbasierten und asynchronen Verarbeitung von Anforderungen. Während Apache für jede gestellte Anfrage einen neuen Thread startet, laufen diese bei NGINX über einen einzigen Thread. Wird für jede Anfrage ein neuer Prozess gestartet, kann das dazu führen, dass der Server überlastet wird, wodurch eine Webseite wesentlich langsamer geladen wird.
NGINX hingegen eröffnet einen sogenannten Master-Thread, unter dem unzählig viele Worker-Threads gleichzeitig und asynchron verarbeitet werden können. Die Prozesse behindern sich so nicht gegenseitig, sodass Webseiten schneller geladen werden.
Neben der hohen Parallelität stehen auch eine geringe Speichernutzung und Prozessor-Belastung im Fokus. So arbeitet NGINX besonders ressourcenschonend und sorgt für eine hohe Performance. Erreicht wird dies unter anderem dadurch, dass das Laden dynamischer Inhalte, wie beispielsweise PHP-Anfragen, ausgelagert wird.
NGINX nimmt die Anfragen zwar an, leitet sie jedoch an einen externen Prozess – wie den FastCGI – weiter. Dieser bearbeitet die Anfrage und liefert sie zurück an den NGINX-Server. Apache hingegen lädt sowohl statische als auch dynamische Inhalte und ist somit einer höheren Server-Belastung ausgesetzt.
NGINX als Reverse Proxy verwenden
Eine beliebte Funktion von NGINX ist die Verwendung als Reverse Proxy. Proxy-Server stellen eine Art Kommunikationsschnittstelle im Netzwerk dar. Sie treten zwischen Client und Backend-Server und können die Kommunikation in beide Richtungen beeinflussen. Als Reverse Proxy wird NGINX vor den Webserver geschaltet und kann so die Anfragen an den Backend-Server abfangen. Dabei können verschiedene Funktionen übernommen werden, die den Datenverkehr optimieren. Das sind zum Beispiel:
-
Load Balancing,
-
eine verstärkte Sicherheitskomponente und
-
Kompression oder Caching von Daten.
Quelle: https://www.nginx.com/products/nginx/
Beim Load Balancing werden die Anfragen vom Proxy-Server optimal auf die entsprechenden Backend-Server verteilt. Das sorgt für eine verbesserte Netzwerkleistung – auch im Falle eines Server-Ausfalls.
Der Proxy-Server kann auch die Kommunikation über das SSL-Zertifikat abwickeln. So wird eine höhere Sicherheit im Datenverkehr gewährleistet und Schadsoftware zurückgehalten.
Auch das Komprimieren von Daten trägt wesentlich zur Performance-Verbesserung bei. Indem Daten verkleinert und im Cache zwischengespeichert werden, kann eine Web-Beschleunigung erzielt werden.
http-Status-Code 403 Forbidden: Was tun bei diesem NGINX Error?
Auch NGINX ist vor Fehlern nicht gefeit. Eine der häufigsten Fehlermeldungen bei NGINX ist der http-Status-Code „403 Forbidden“. Dieser Statuscode bedeutet, dass der Webserver die Anfrage Ihres Browsers versteht, NGINX sie aber nicht erfüllt, weil Ihnen in diesem Falle Berechtigungen fehlen.
Sie können den http-Fehler „403 Forbidden“ bei NGINX sowohl von Server- als auch von Client-Seite beheben. Häufig wird der Error 403 von der falschen Konfiguration der Indexdatei ausgelöst – fügen Sie als Webmaster also die vorhandene Indexdatei, die in der Konfiguration spezifiziert wird, zur Konfigurationsdatei hinzu.
Sie können alternativ NGINX erlauben, die Verzeichnisse aufzulisten. Dies empfiehlt sich jedoch nicht für öffentlich zugängliche Server! Eine weitere Lösung für den „403 Forbidden“-Error des Webservers ist, die Genehmigung des Verzeichnisses zu „755“ und die der Datei zu „644“ zu ändern.
Auf Client-Seite können Sie die eingegebene URL, die den „403 Forbidden“-Code bei NGINX hervorgerufen hat, sicherheitshalber auf Richtigkeit überprüfen, die Seite neu laden und den Browser-Cache leeren. Stellen Sie außerdem sicher, dass Ihre Firewall und Ihr Proxy es Ihnen erlauben, auf die Seite überhaupt zuzugreifen.
http-Status-Code „502 Bad Gateway” bei NGINX: Das können Sie tun
Ein weiterer Error, der ab und an bei Servern vorkommt, ist „502 Bad Gateway“ bei NGINX. Der Code zeigt an, dass der Webserver Ihre Anfrage nicht weiterleiten konnte. Leider ist bei diesem Error nicht sofort klar, wo denn der Fehler liegt, da er in den meisten Fällen beim NGINX-Server selbst verortet ist, beispielsweise weil er ausgefallen oder überlastet ist.
Daher ist die erste Devise: Abwarten und die Seite nach einer Viertelstunde neu laden. Versuchen Sie auch, Ihre Cookies und Ihren Cache zu löschen oder einfach einen anderen Browser zu nutzen.
Als Webmaster können Sie bei einem http-Code „502 Bad Gateway“ von NGINX Ihre PHP-Programmierung auf Fehler prüfen. Wenn Sie häufiger mit 502-Fehlern zu kämpfen haben, sollten Sie zudem Ihren Hosting-Anbieter kontaktieren, um den Server gemeinsam zu konfigurieren.
Wichtig zu wissen: NGINX kennt keine .htaccess-Dateien
Individuelle Zugriffsregeln für Weiter- oder Umleitungen werden in Apache in den .htaccess-Dateien definiert und können jederzeit angepasst werden. NGINX hingegen kennt diesen Dateityp nicht. Anpassungen werden hier direkt in der übergeordneten NGINX-Konfiguration vorgenommen.
Das stellt einen kleinen Nachteil des Servers gegenüber Apache dar. Verwalten Sie Ihre Webseite nämlich über sogenannte Shared-Hosting-Anbieter, können Sie keine Änderungen an der zentralen Konfigurationsdatei vornehmen. Denn das würde bedeuten, dass die Änderungen für alle Hosting-Teilnehmenden gelten. Viele Anbieter stellen jedoch bereits .htaccess-Konverter zur Verfügung, die das Anpassen von Weiterleitungen auch unter NGINX ermöglichen sollen.
Erweiterter Funktionsumfang mit der NGINX Plus-Version
Neben der kostenfreien NGINX-Version kann auch die NGINX-Plus-Variante genutzt werden. 2011 wurde diese durch NGINX.Inc eingeführt, bevor das Unternehmen 2019 von F5 Networks aufgekauft wurde. Mit NGINX-Plus erhalten Sie zusätzliche Funktionen und können außerdem auf einen Support-Service zurückgreifen. Bevor Sie auf die Plus-Version upgraden, können Sie diese kostenlos testen.
Fazit: NGINX eignet sich ideal als Webserver-Lösung für große Datenmengen
Die Internetlandschaft wächst permanent um weitere Inhalte. Nicht selten führt diese Daten-Überlastung zu einer verlangsamten Server-Leistung. NGINX bietet durch die optimierte Bereitstellung von Webseiteninhalten hierfür eine Lösung. Auch als Reverse Proxy stellt die Software eine elegante Option in der Datenübertragung dar. Nicht zuletzt wegen der verbesserten Performance setzen die Big Player des Web 2.0 auf das Open-Source-System.
Titelbild: SARINYAPINNGAM / iStock / Getty Images Plus