Nginx-Server als Apache-Alternative

Auf dem Großteil aller Web-Server wird Apache eingesetzt. Diese Server-Software ist leicht zu bedienen und bietet jede Menge Möglichlichkeiten.

Doch ein Konkurrent aus Russland ergattert mehr und Marktanteile. In diesem Artikel stelle ich Dir die Server-Software Nginx (gesprochen: „Engine X“) vor.

Informationen zu Nginx

Wie bereits angedeutet, wurde Nginx in Russland produziert. Eine große, russische Suchmaschine ließ damals eine Serversoftware herstellen, die auf ihre Bedürfnisse zugeschnitten war.

Nginx sollte das Maximum aus dem Server herausholen, statische Inhalte ebenfalls schnell ausliefern und zugleich einiges an Funktionen bieten.

Mittlerweile wurde das Projekt unter der sogenannten BSD-Lizenz veröffentlicht, es handelt sich also um eine Open Source-Software.

Mit dem Herkunftsort lässt sich auch die große Verbreitung in Russland und den Nachbarländern erklären. So sind wohl etwa in Russland (.ru) und der Ukraine (.ua) Nginx-Installationen mit über 60% Marktanteil besonders beliebt.

Auch wenn sich man die 10 000 größten Websites anschaut und deren Server-Software, ergibt sich ein ähnlich beeindruckendes Bild. Immerhin 22,4 % dieser Anbieter verwenden Nginx. Insbesondere Facebook, WordPress und andere große Unternehmen/Vereine wie Wikimedia setzen auf den schnelleren Konkurrenten.

Vorteile und Besonderheiten von Nginx

  •  Keine .htaccess-Dateien
    Auf den ersten Blick sind sie einer der größten Vorteile von Apache, die .htaccess-Dateien. Doch da Apache alle übergeordneten Verzeichnisse einer Datei nach diesen mit jedem Aufruf durchsuchen muss, kostet das enorm viel Zeit. Apache bietet zwar auch eine zentrale Steuerungsdatei an, aber nach .htaccess-Dateien wird eben in jedem Fall auch gesucht.
  • Worker-Prozesse
    Apache startet mit jeder gestellten Anfrage einen neuen Prozess, um diese zu verarbeiten. Das ist nicht gerade performant. Nginx wählt da einen anderen Weg. Dort gibt es sogenannte Worker-Prozesse, die mehrere Anfragen verarbeiten können. Je nach Anzahl der CPU-Kerne kann die Anzahl dieser festen Worker-Prozesse erhöht werden.
  • Leichte Konfiguration
    Und damit wären wir auch schon bei dem nächsten Vorteil von Nginx. In dem Ordner /etc/nginx/sites-enabled/ können Dateien gespeichert werden, in denen wiederum virtuelle Hosts angelegt werden können. Virtuelle Hosts machen beispielsweise bei mehreren, unterschiedlichen Internetseiten auf einem Server Sinn. Innerhalb dieser Einträge können dann einzelne Verzeichnisse gesperrt, oder Umleitungen festgelegt werden. Nach etwas Einarbeitungszeit sollte die Website dann wie erwartet funktionieren. Übrigens gibt es die Möglichkeit, Online Tools wie dieses einzusetzen, um die Einstellungen von der .htaccess nach Nginx zu übernehmen.
  • Große Verbreitung
    Zugegeben, Apache hat einen großen Vorsprung im Marktanteil und wird diesen vermutlich auch in den nächsten Jahren noch nicht aufgeben müssen. Aber Nginx wird immer beliebter, gerade wenn es eines performanten Webservers bedarf. Entsprechend groß ist die Community, sodass bei Fragen zu Nginx häufig genug Mitglieder mit einer passenden Antwort bereitstehen.
  • Kombination mit Apache möglich
    Natürlich können Nginx und Apache auch zusammen eingesetzt werden. So kann Apache sich etwa ganz klassisch um PHP-Skripte kümmern, während der vorgeschaltete Nginx-Proxy statische Dateien ausliefert. Dieser englischsprachige Beitrag geht auf die Thematik näher ein.
  • Tolle Performance
    Das Argument für Nginx ist und bleibt die Performance. Nginx ist eben ein kompakter Server, der schneller als Apache statische Dateien ebenso wie dynamische Dateien ausliefern kann. Sowohl große Websites, wie Facebook, als auch kleinere, die mehr aus ihrem Server herausholen wollen, können davon profitieren.
  • Open Source
    Die BSD-Lizenz ist eine Open-Source-Lizenz. Der Quellcode kann also von Außenstehenden eingesehen und auf etwaige Sicherheitslücken hin überprüft werden. Das ist, um dir diese Information nicht vorzuenthalten, bei Apache ähnlich.

Nachteile dieser Lösung

  • Russisches Produkt
    Der ein oder andere mag Vorbehalte gegenüber Russland hegen. Wer trotz des offenen Quellcodes nicht überzeugt ist, der kann natürlich weiterhin auf Apache & Co. setzen. Aber: Ob man amerikanischen Diensten und Produkten eher vertrauen kann? Und, ob es bei einem quelloffenen Produkt überhaupt einen Unterschied macht?
  • Weniger Komfort
    An einigen Stellen wird der Apache-Nutzer etwas Komfort vermissen. Zwar können über die entsprechenden Konfigurationsdateien leicht Einstellungen vorgenommen werden, doch bieten die .htaccess-Dateien einen entscheidenden Vorteil. Bei Massenhostern wird es kaum möglich sein, allen Nutzern einen Zugriff auf die kompletten vHosts-Einstellungen zu gestatten. So könnte ein Benutzer eventuell auch die anderen Einträge und Accounts manipulieren. Außerdem kann die .htaccess-Datei in der Regel bequem per FTP hochgeladen werden, und zwar in den Ordner, für den sie gelten soll. Die Nginx-Konfigurationsverzeichnisse sind in der Regel nicht direkt über den FTP-Account zu erreichen.

Meine Erfahrungen

Ich selbst bin bei unterschiedlichen Hostern und betreibe mehrere kleine/virtuelle Server. Unter anderem einen Raspberry Pi für die eigene Cloud zu Hause.

Dieser läuft mit Nginx und das recht zuverlässig. Ab und zu hakt es höchstens bei der Cloud-Software, aber das liegt wohl eher an dem Raspberry Pi.

Auch mein größtes Projekt, 60tools, läuft seit einigen Wochen problemlos und zuverlässig mit Nginx.

Fazit

Nginx ist mittlerweile eine echte Alternative zu Apache. Gerade für diejenigen unter euch, die einen eigenen Server betreiben und damit eventuell an die Leistungsgrenzen geraten sind, oder eine schnellere Website wollen.

Und weil das Server-Projekt so interessant ist, werde ich mich wohl auch hier auf WWW Coding in weiteren Artikeln mit Nginx auseinandersetzen.