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 beachten.

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:

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:

TLS-Unterstützung
Es wird wärmstens empfohlen als unsicher bekannte Verschlüsselungsverfahren zu de- und "nur" TLS zu aktivieren.

Das ebuild stellt Standard-selbstsignierte Zertifikate in bereit

Vorwärts gerichtete Geheimhaltung
Das Diffie-Hellman-Zertifikat kann mittels erzeugt werden:

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
Start nginx:

Stop nginx:

Add nginx to the default runlevel:

Restart the nginx service:

Fehlersuche
In case of problems, the following commands can help troubleshoot the situation.

Validierung der Konfiguration
Verify that the running nginx configuration has no errors:

By running with the   option, it will validate the configuration file without actually starting the  daemon.

Verify processes are running
Check if processes are running:

Verify bound addresses and ports
Verify nginx daemon is listening on the right TCP port (such as 80 for HTTP or 443 for HTTPS):

External resources

 * https://nginx.org/en/docs/beginners_guide.html - A beginner's guide. Helpful for those who do not know much about.
 * https://nginx.com/resources/admin-guide/ - The administration guide. Helpful for web administrators who have been working in the field.
 * http://wiki.nginx.org/Main - The nginx wiki.
 * https://github.com/h5bp/server-configs-nginx - H5BP nginx config.