Der am weitesten verbreitete Webserver ist heute immer noch der Apache, allein wegen seiner universellen Einsetzbarkeit und der zahlreichen Module – die Nutzung von Nginx nimmt aber kontinuierlich zu, während die Nutzung des Apache langsam abnimmt. Was der Nginx Webserver ist, was er kann und welche Vorteile und Schwächen er hat, erklären wir ausführlich in unserem Beitrag.
Nginx Webserver – was ist das?
Das erste große Problem haben viele wahrscheinlich schon mit dem Namen: Wie spricht man „Nginx“ überhaupt aus? Das ist ganz einfach – und überhaupt kein Zungenbrecher. Die Schreibweise Nginx ist nur eine verkürzte Schreibweise für „engine X“ – und genauso wird der Name dann auch ausgesprochen.
Ein auf hohe Leistung getrimmter Webserver
Wie Apache ist auch der Nginx Webserver ein Open-Source-Produkt, allein aufgrund seiner Entstehungsgeschichte setzt er als Webserver aber deutlich andere Prioritäten als Apache. Seine Konzeption ist die Antwort auf hohe Serverlasten, genauer gesagt auf das C10k-Problem (Leistungsproblem bei 10.000 gleichzeitigen Verbindungen). Tatsächlich löst der Nginx Webserver dieses Problem – und zwar deutlich besser als viele andere Webserver.
So wie ein Marathonläufer nicht jeden 100 m Sprint gewinnt, bedeutet das natürlich auch bei Nginx nicht, dass er grundsätzlich und immer schneller ist als jeder andere Webserver – seine konsequente Ausrichtung auf geringe Speichernutzung und hohe Parallelität macht ihn bei statischen Belastungen und zahlreichen gleichzeitigen Anfragen zu einem echten Gewinner.
Das Funktionsprinzip dahinter ist übrigens eine Master-Worker-Konfiguration: Ein einzelner Master-Prozess ist in der Lage, mehrere Worker-Prozesse zu steuern, die weitestgehend gleichzeitig ablaufen, weil der dahinter stehende Ansatz asynchron gestaltet ist. Das macht klar, warum die Leistungsfähigkeit so hoch ist.
Eingesetzt bei vielen bekannten Webdiensten
Wo Nginx dem Apache Webserver das Wasser abgräbt ist, wenn man sich Nutzungsstatistiken ansieht, vor allem dort, wo der Datenverkehr zunimmt. Bei Websites mit hohem Datenverkehr wird Apache sehr viel seltener verwendet.
Nicht zuletzt deshalb findet man unter den Nutzern ziemlich bekannte (und traffic-intensive) Websites und Dienste wie Starbucks, WordPress, Netflix und sogar die NASA.
Nginx Plus – die kommerzielle Variante
Neben dem weit verbreiteten Open Source Produkt gibt es auch noch die Variante „Plus“ – eine kostenpflichtige Premium-Funktion. Neben zahlreichen erweiterten Funktionen und einem gemanagten Release-Prozess ist eines der wichtigsten Merkmale der kommerziellen Variante ein professioneller Support – den viele sicherlich zu schätzen wissen, wenn sie mit der Open-Source-Variante nicht viel Erfahrung haben. In diesem Fall auf das kostenpflichtige Produkt zu setzen und dafür auch gleichzeitig ein paar zusätzliche Funktionen zu haben, kann sich lohnen. Ansonsten hilft auch Plesk schon eine ganze Menge bei der Webserver-Verwaltung.
Interessante Zusatzfunktionen
Auch in der Open-Source-Variante gibt es einige interessante Zusatzfunktionen. Die wichtigsten beiden sind sicherlich:
- die Reverse-Proxy-Funktion mit Caching und
- die Load-Balancing-Funktion
Reverse Proxy Funktion
Einen Reverse Proxy einzusetzen, der vor dem eigentlichen Server sitzt, erhöht nicht nur die Sicherheit, sondern sorgt auch für eine Beschleunigung des Webverkehrs. Der Grund dafür ist, dass der zwischen Client und Backend geschaltete Reverse Proxy die Kommunikation in beide Richtungen beeinflussen und steuern kann.
Interessant ist das wiederum, wenn zahlreiche gleichzeitige Anfragen kommen (also wieder das alte C10k-Problem), aber auch wenn man das Backend aus Sicherheitsgründen hinter einer weiteren Barriere etwas sicherer abschotten möchte. Nginx ist als Reverse Proxy zudem in der Lage, Daten zu cachen und Daten zu komprimieren – was im einen Fall für mehr Stabilität und im anderen Fall für mehr Geschwindigkeit sorgt.
Als Reverse Proxy kann Nginx übrigens auch die Kommunikation über das SSL-Zertifikat abwickeln – was für einen zusätzlichen Gewinn an Sicherheit bedeutet und es Schadsoftware noch schwerer macht.
Load Balancing
Die zweite, sehr interessante Funktion, die Load Balancing Funktion, steht in direktem Zusammenhang mit der zuvor genannten. Zum Load Balancing ist der Nginx Webserver in der Lage, wenn er als Reverse Proxy eingesetzt wird – also zwischen Client und Backend.
Mit der Load Balancing kann der Reverse Proxy dann nicht nur Daten cachen und komprimieren, was an sich schon einen Gewinn an Stabilität und Performance bringt, sondern die Last dann auch noch gezielt und optimiert an die einzelnen Server im Backend verteilen.
Bild von Gerd Altmann auf Pixabay