Laut W3Techs-Statistik ist Apache auch im Jahr 2016 noch der meist­ge­nutz­te Webserver – insgesamt über 50 Prozent aller Web­sei­ten­be­trei­ber nutzen ihn. Be­trach­tet man al­ler­dings nicht die Ge­samt­heit aller Websites, sondern nur die Top 10.000 der meist­be­such­ten Websites, zeigt sich ein anderes Bild: Nur knapp 30 Prozent dieser Seiten basieren auf dem erstmals 1995 pu­bli­zier­ten Server-Urgestein. Von den führenden 1.000 Websites sind es sogar nur rund 27 Prozent. Das ist zum einen auf den un­ver­hält­nis­mä­ßig hohen Anteil des Google Web Servers (rund 10 Prozent) bei den stark besuchten Websites zu­rück­zu­füh­ren, denn auf ihm laufen sämtliche Google-Webseiten. Zum anderen hängt dieses Ergebnis aber auch mit dem rasanten Aufstieg der aus Russland stam­men­den Webserver-Software NGINX zusammen. War sie im Jahr 2010 mit knapp 4 Prozent Markt­an­teil nicht mehr als eine der zahl­rei­chen Apache-Al­ter­na­ti­ven, ist die unter der BSD-Lizenz ver­öf­fent­lich­te Software heute bereits bei jedem zweiten Web­pro­jekt der Top 10.000 bzw. 1.000 im Einsatz.

Was ist NGINX?

Die Pro­gram­mie­rung der 2004 ver­öf­fent­lich­ten NGINX-Server-Software trieb in erster Linie der russische Soft­ware­ent­wick­ler Igor Sysoev voran. Damals wie heute lag der Fokus darauf, einen Server zu ent­wi­ckeln, der sich durch au­ßer­or­dent­lich hohe Per­for­mance aus­zeich­net und eine möglichst große Anzahl an Clients gleich­zei­tig bedienen kann, dabei aber auch durch einen geringen Res­sour­cen­ver­brauch überzeugt. An­ge­sichts der wach­sen­den Be­liebt­heit und Ver­brei­tung des Web­ser­vers gründete Sysoev 2011 NGINX Inc. Das kom­mer­zi­el­le Un­ter­neh­men ist seitdem für die Wei­ter­ent­wick­lung der Software zuständig und bietet – neben der weiterhin freien Stan­dard­ver­si­on – mit NGINX Plus auch kos­ten­pflich­ti­gen Support und Zu­satz­fea­tures wie ver­bes­ser­tes Load Balancing an.

NGINX ist wie Apache modular aufgebaut. Das heißt, dass die ver­schie­de­nen Funk­tio­nen über ent­spre­chen­de Module be­reit­ge­stellt werden, die Sie als Ad­mi­nis­tra­tor ak­ti­vie­ren oder de­ak­ti­vie­ren können. Dadurch verfügen Sie bei­spiels­wei­se über die folgenden Features:

  • Ap­pli­ca­ti­on Ac­ce­le­ra­ti­on (An­wen­dungs­be­schleu­ni­gung) er­mög­licht die schnelle Aus­lie­fe­rung von Inhalten.
  • Reverse Proxying erlaubt es, NGINX als Reverse Proxy (HTTP, TCP, UDP) zur Web­be­schleu­ni­gung oder als E-Mail-Proxy (IMAP, POP3, SMTP) zu nutzen.
  • Band­brei­ten­ma­nage­ment stellt allen Diensten die optimale Band­brei­te zur Verfügung.
  • Load Balancing entlastet den Haupt­ser­ver durch Umleitung der Anfragen.
  • Vi­deo­strea­ming, das hohe Leis­tungs­fä­hig­keit beim Streaming von MP4- und FLV-Medien bietet.

Während Apache für jede Client-Anfrage einen neuen Thread oder Prozess öffnet, arbeitet der NGINX-Server er­eig­nis­ori­en­tiert. Somit kann er die Anfragen asynchron be­ar­bei­ten, was Ar­beits­spei­cher und Zeit spart. Die Server-Software wird von einer Vielzahl von Be­triebs­sys­te­men un­ter­stützt, unter anderem von zahl­rei­chen Unix-/Linux-Varianten inklusive Mac OS sowie von Windows-Servern.

NGINX in­stal­lie­ren und kon­fi­gu­rie­ren

Nutzer der Plus-Edition erhalten bei der In­stal­la­ti­on der Software Un­ter­stüt­zung durch den NGINX-Support. Generell verläuft die In­stal­la­ti­on al­ler­dings nach dem alt­be­kann­ten Mustern unter Nutzung des Pa­ket­ma­na­gers, denn die meisten Linux-Dis­tri­bu­tio­nen haben das NGINX-Paket stan­dard­mä­ßig in ihrem Re­po­si­to­ry. Sollte das Paket fehlen, kann der Quellcode jedoch schnell und einfach von der of­fi­zi­el­len Homepage des NGINX-Projektes her­un­ter­ge­la­den werden. Im Folgenden zeigen wir Ihnen bei­spiel­haft, wie Sie den Webserver unter Linux in­stal­lie­ren und kon­fi­gu­rie­ren: 1. Mit folgendem Befehl ak­tua­li­sie­ren Sie zunächst den Pa­ket­ma­na­ger, damit Ihr System bei der an­schlie­ßen­den In­stal­la­ti­on (die durch die zweite Codezeile gestartet wird) auf die neueste Version des NGINX-Paketes zu­rück­greift:

sudo apt-get update
sudo apt-get install nginx

2. NGINX startet in der Regel direkt im Anschluss. Um zu über­prü­fen, ob die Software tat­säch­lich ord­nungs­ge­mäß funk­tio­niert, rufen Sie einfach die NGINX-Landing­pa­ge über den Do­main­na­men des Servers oder die öf­fent­li­che IP-Adresse in Ihrem Browser auf. Bei er­folg­rei­cher In­stal­la­ti­on sehen Sie folgende Nachricht:

3. Alles, was zur NGINX-Kon­fi­gu­ra­ti­on er­for­der­lich ist, finden Sie im Ver­zeich­nis /etc/nginx – unter anderem die zentrale Kon­fi­gu­ra­ti­ons­da­tei nginx.conf. Wann immer Sie Än­de­run­gen an dieser Datei vornehmen, ist es notwendig, den Server mit einem der beiden folgenden Befehle neu zu starten, damit diese über­nom­men werden:

sudo service nginx reload
sudo service nginx restart

Mit den Pa­ra­me­tern stop bzw. start können Sie den Dienst auch komplett aus- bzw. wieder an­schal­ten.

4. Die Syntax der Kon­fi­gu­ra­ti­ons­da­tei hat folgende Merkmale:

  • Ein­stel­lun­gen: Alle Ein­stel­lun­gen beginnen mit dem je­wei­li­gen Va­ria­blen­na­men. Per Leer­zei­chen getrennt schließen sich ein oder mehrere Argumente an, an deren Ende immer ein Semikolon steht.
worker_connections 768;
  • über­ge­ord­ne­te Ein­stel­lun­gen: Einige Ein­stel­lun­gen, wie die events-Variable, be­inhal­ten Argumente, die ih­rer­seits Ein­stel­lun­gen mit eigenen Ar­gu­men­ten dar­stel­len. Diese Sub-Di­rek­ti­ven erhalten ge­schweif­te Klammern ({}).
events {
    worker_connections 768;
    multi_accept on;
}
  • Hash-Zeichen (#): Di­rek­ti­ven (An­wei­sun­gen), die de­ak­ti­viert sind, werden durch ein Hash-Zeichen aus­kom­men­tiert. Indem Sie das Zeichen entfernen, ak­ti­vie­ren Sie die jeweilige Server-Ein­stel­lung. Im Fall von
# multi_accept on;

ist bei­spiels­wei­se die Option de­ak­ti­viert, mehrere Clients zur gleichen Zeit zu ak­zep­tie­ren.

  • Tabstopps und mehrere Leer­zei­chen: NGINX in­ter­pre­tiert gesetzte Tabs und mehrfach gesetzte Leer­zei­chen als ein einziges Leer­zei­chen. Wenn Sie NGINX kon­fi­gu­rie­ren, können Sie sich dies zunutze machen und so für eine or­dent­li­che und gut lesbare Struktur der Kon­fi­gu­ra­ti­ons­da­tei sorgen.

5. Weitere In­for­ma­tio­nen über die einzelnen Module sowie NGINX-Tutorials zur Ein­rich­tung von Web- oder Pro­xy­ser­vern auf Basis der Server-Software finden Sie in der of­fi­zi­el­len, eng­lisch­spra­chi­gen Do­ku­men­ta­ti­on.

Das macht NGINX als Webserver-Software so beliebt

Dass die Be­liebt­heit von NGINX zunehmend steigt, hat mehrere Gründe. Zunächst wäre da die Tatsache zu nennen, dass die Webserver-Software optimal auf die der­zei­ti­gen An­for­de­run­gen vieler Web­pro­jek­te ab­ge­stimmt ist. Denn NGINX erzielt nicht nur erst­klas­si­ge Er­geb­nis­se bei der Ver­ar­bei­tung einer großen Zahl von Client-Anfragen, sondern geht dabei auch überaus res­sour­cen­scho­nend vor. Damit liefert die Software die perfekte Antwort auf die ein­ge­schränk­te Leistung mobiler Da­ten­ver­bin­dun­gen. NGINX un­ter­stützt Sie als Website-Betreiber somit dabei, Ihre Inhalte auch Nutzern mobiler Geräte möglichst schnell aus­zu­lie­fern. Ferner überzeugt das Open-Source-Produkt des rus­si­schen Ent­wick­ler­teams durch seine flexiblen Ein­satz­mög­lich­kei­ten. Zu­sätz­lich zu der klas­si­schen HTTP-Webserver-Variante macht NGINX auch in Sachen Reverse-Proxying, bei­spiels­wei­se als E-Mail-Proxy-Server oder Load Balancer, eine gute Figur.

NGINX ist aber nicht immer die beste Webserver-Wahl: Shared Hosting, bei dem die Kontrolle über Server-Res­sour­cen mithilfe pass­wort­ge­schütz­ter Bereiche oder interner Um­lei­tun­gen geregelt wird, ist damit nur schwer zu rea­li­sie­ren. Solche Sektionen und Rewrites können nur in der zentralen Kon­fi­gu­ra­ti­ons­da­tei angelegt und per Server-Neustart umgesetzt werden. Ent­spre­chend wirken sich dann mögliche Fehler auf alle Teil­neh­mer der Shared-Hosting-Instanz aus. In diesem Bereich bietet der Apache-Webserver, bei dem in­di­vi­du­el­le Ein­stel­lun­gen in separaten .htaccess-Dateien fest­ge­hal­ten werden, also einen deut­li­chen Vorteil.

FAQs

Nach­fol­gend haben wir die wich­tigs­ten Fragen und Antworten zum Thema nochmals für Sie zu­sam­men­ge­fasst.

Was ist NGINX?

NGINX ist eine modular auf­ge­bau­te Server-Software. Bei der Ent­wick­lung der Software lag der Fokus vor allem auf hoher Per­for­mance, um eine möglichst große Anzahl an Clients gleich­zei­tig bedienen zu können und einen gleich­zei­tig möglichst geringen Res­sour­cen­ver­brauch.

Welche Features bietet NGINX?

Einige der in den Modulen von NGINX ent­hal­te­nen Features sind:

  • Ap­pli­ca­ti­on Ac­ce­le­ra­ti­on
  • Reverse Proxying
  • TLS-Ver­schlüs­se­lung
  • Band­brei­ten­ma­nage­ment
  • Load Balancing
  • Vi­deo­strea­ming

Was ist der Un­ter­schied zwischen NGINX und Apache?

Apache öffnet für jede Client-Anfrage einen neuen Thread oder Prozess. Der NGINX-Server arbeitet hingegen er­eig­nis­ori­en­tiert und kann Anfragen daher asynchron be­ar­bei­ten, was Ar­beits­spei­cher und Zeit spart.

Was sind die Vorteile von NGINX?

NGINX erzielt erst­klas­si­ge Er­geb­nis­se bei der Ver­ar­bei­tung einer großen Zahl von Client-Anfragen und geht dabei überaus res­sour­cen­scho­nend vor. Damit liefert die Software die perfekte Antwort auf die ein­ge­schränk­te Leistung mobiler Da­ten­ver­bin­dun­gen. Darüber hinaus bietet das Open-Source-Produkt sehr flexible Ein­satz­mög­lich­kei­ten.

Zum Hauptmenü