Nginx/de

nginx ist ein robuster, kleiner und hochperformanter Web-Server und ein Reverse-Proxy-Server. Er ist eine gute Alternative zu populären Webservern wie Apache und lighttpd.

Installation
Vor der unmittelbaren Installation des Paketes, ist es sinnvoll die USE-Flags für Nginx zu betrachten.

Erweiterte USE-Flags
Nginx nutzt Module um seine Funktionalitäten zu erweitern. Um die Verwaltung dieses modularen Aufbaus zu vereinfachen, nutzt der nginx-ebuild erweiterte USE ( USE_EXPAND ) -Flags um anzuzeigen welche Module installiert werden sollen.


 * HTTP-bezogene Module können durch die NGINX_MODULES_HTTP -Variable aktiviert werden
 * Mail-bezogene Module können durch die NGINX_MODULES_MAIL -Variable aktiviert werden
 * Drittparteien-Module können durch die NGINX_ADD_MODULES -Variable aktiviert werden

Diese Variablen müssen in gesetzt werden. Ihre Beschreibung kann unter  und  gefunden werden.

Um zum Beispiel das  Modul zu aktivieren :

Obiges übrschreibt den Standard-Wert von NGINX_MODULES_HTTP und setzt ihn auf. Um das -Modul zu aktivieren ohne den Standard-Wert von NGINX_MODULES_HTTP zu überschreiben, kann die folgende USE-Flag-Notation in  spezifiziert werden :

Emerge
Mit gesetzten USE-Flags, installieren :

Installationsverifizierung
Die Standardkonfiguration von nginx definiert einen virtuellen Server mit dem Wurzelverzeichnis gesetzt auf. Aufgrund des erstellt das nginx-ebuild nur das Verzeichnis  und ohne eine Indexdatei. Um eine funktionierende Standardkonfiguration zu erhalten, das Verzeichnis und eine simple Indexdatei erstellen:

Das nginx-Paket installiert einen Init-Dienst welcher Administratoren erlaubt, ihn zu stoppen, zu starten oder neuzustarten. Das nächste Kommando ausführen um den nginx-Dienst zu starten:

Um sicherzustellen, dass nginx korrekt läuft, mit einem Webbrowser die Adresse [http://localhost] aufrufen oder ein Kommandozeilentool wie benutzen:

Konfiguration
Die Nginx-Konfiguration wird mittels der -Datei gesteuert.

Einzelseiten-Zugriff
Das folgende Beispiel zeigt einen Einzelseiten-Zugang, ohne dynamische Möglichkeiten (wie z.B. PHP).

Multiseiten-Zugriff
Es ist möglich die  -Direktive auszuhebeln um die Konfiguration in mehrere Teile aufzuspalten :

PHP-Unterstützung
Die folgenden Seiten zur nginx-Konfiguration hinzufügen um PHP-Unterstützung zu aktivieren. In diesem Beispiel tauscht nginx Informationen mit dem PHP-Prozess über einen UNIX-Socket aus.

Um dieses Setup zu unterstützen, muss PHP mit Unterstützung für den FastCGI Prozess-Manager gebaut werden, was durch die   USE-Flag gesteuert wird:

PHP mit der aktivierten  USE-Flag neu bauen:

Die -Konfiguration überprüfen und folgende Zeile hinzufügen:

For PHP 7.0 and newer configuration file is slightly different:

Die Zeitzone in der php-fpm-Datei setzen. Den -Text in der FileBox hierunter mit der passenden Zeitzoneninformation ersetzen.

Den -Daemon starten:

zum Default-Runlevel hinzufügen:

mit geänderter Konfiguration neu laden:

IP-Adressen-Zugriffsliste
Das nächste Beispiel zeigt wie man den Zugriff zu einer bestimmten URL (in diesem Fall ) nur folgendem erlaubt:


 * bestimmten Hosts (z.B. "192.0.2.1 127.0.0.1")
 * und bestimmten IP-Netzwerken (z.B. "198.51.100.0/24")

Grundlegende Authentifizierung
nginx erlaubt es, den Zugriff durch Validieren des Benutzernamens und Passwortes einzuschränken:

Die -Datei kann erzeugt werden mittels:

Drittparteien-Module
Den Drittparteien-Modul-Quellcode herunterladen und ihn nach verschieben. Das ausgewählte Nginx-Modul kompilieren, dann die folgende Zeile zu hinzufügen:

nginx mit dem aktivierten Drittparteien-Modul neu bauen:

OpenRC
nginx starten:

nginx stoppen:

nginx zu dem Default-Runlevel hinzufügen:

Reload nginx configuration without dropping connections:

Den nginx-Service neustarten:

systemd
Start nginx web server:

Stop nginx web server:

Check the status of the service:

Enable service to start automatically on system reboot:

Reload nginx configuration without dropping connections:

Restart the nginx service:

Fehlersuche
Im Falle eines Problems können die folgenden Kommandos bei der Fehlersuche helfen.

Validierung der Konfiguration
Verifizieren dass die laufende nginx-Konfiguration keine Fehler aufweist:

Beim Ausführen von mit der   Option wird die Konfigurationsdatei validiert ohne den -Daemon zu starten.

Verifizieren dass die Prozesse laufen
Prüfen dass die -Prozesse laufen:

Gebundene Adressen und Ports verifizieren
Verifizieren dass der nginx-Daemon auf dem richtigen TCP-Port lauscht (wie zum Beispiel 80 für HTTP oder 443 für HTTPS):

Siehe auch

 * Apache - Der populärste im Internet genutzte HTTP-Server.
 * Lighttpd - Ein schneller, leichtgewichtiger Web-Server.

Externe Ressourcen

 * https://nginx.org/en/docs/beginners_guide.html - Eine Anfänger-Anleitung. Hilfreich für diejenigen die nicht viel über  wissen.
 * https://nginx.com/resources/admin-guide/ - Die Administrations-Anleitung. Hilfreich für Web-Administratoren die in diesem Feld gearbeitet haben.
 * http://wiki.nginx.org/Main - Das nginx wiki.
 * https://github.com/h5bp/server-configs-nginx - H5BP's nginx-Konfigurationen.