Nginx/de

nginx ist Web-Server und ein Reverse-Proxy-Server.]] Er ist eine gute Alternative zu populären Webservern wie  und.

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 -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 überschreibt 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. ).

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:

Für PHP 7.0 und neuere PHP-Versionen verwenden Sie folgende Konfiguration:

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:

Alternativ für systemd:

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:

Geolocation using GeoIP2
The GeoIP2 module makes use of GeoIP2 databases by Maxmind or similar. Using Maxmind is already supported in Gentoo through. However, registration of an account is required in order to obtain a free license key and download the free database.

Downloading Maxmind GeoIP2 databases
Once an account is created, install and configure geoipupdate:

Enter the account and license key:

After that, you'll need to download the databases:

In order receive updates automatically in the future, add this command to a weekly cronjob or systemd timer.

Hinzufügen von GeoIP2-Unterstützung zu Nginx
To enable to modules and rebuild Nginx:

Rebuild nginx with the third party modules enabled:

Once Nginx has been rebuild, point Nginx to the databases and the GeoIP2 variables:

The  option will allow updating the database without restarting Nginx.

For the GeoIP2 values to show up in a PHP application, assign them as  values:

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-Webserver starten:

nginx-Webserver stoppen:

Fügen Sie nginx zum Standard-Runlevel hinzu, damit der Dienst beim Neustart des Systems automatisch startet:

Laden Sie die nginx-Konfiguration neu, ohne die Verbindungen zu unterbrechen:

Den nginx-Service neustarten:

systemd
nginx-Webserver starten:

nginx-Webserver stoppen:

Überprüfen Sie den Status des Dienstes:

Aktivieren Sie den Dienst, damit er beim Neustart des Systems automatisch gestartet wird:

Laden Sie die nginx-Konfiguration neu, ohne die Verbindungen zu unterbrechen:

Starten Sie den nginx-Dienst neu:

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. Verwenden Sie die Option  mit dem vollständigen Dateipfad, um Konfigurationsdateien zu testen, die sich nicht an den Standardspeicherorten befinden.

Verifizieren dass 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):

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.
 * https://wiki.nginx.org/Main - Das nginx wiki.
 * https://github.com/h5bp/server-configs-nginx - H5BP's nginx-Konfigurationen.