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
The default nginx configuration defines a virtual server with the root directory set to. However due to, the nginx ebuild will only create the directory and without an index file. To have a working default configuration, create the directory and simple index file:

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

Multiple site access
It is possible to leverage the  directive to split the configuration in multiple files:

PHP support
Add the following lines to the nginx configuration to enable PHP support. In this example nginx is exchanging information with the PHP process via a UNIX socket.

To support this setup, PHP needs to be built with FastCGI Process Manager support, which is handled through the  USE flag:

Rebuild PHP with the  USE flag enabled:

Review the configuration and add following line:

Set the timezone in the php-fpm file. Substitute the  text in the FileBox below with the appropriate timezone information:

Start the daemon:

Add to the default runlevel:

Reload with changed configuration:

IP address access list
The next example shows how to allow access to a particular URL (in this case ) only to:


 * certain hosts (e.g. 192.0.2.1 127.0.0.1)
 * and IP networks (e.g. 198.51.100.0/24)

Basic authentication
nginx allows limiting access to resources by validating the user name and password:

The file can be generated using:

TLS support
It is warmly suggested to support only TLS and disable known insecure ciphers.

The ebuild provides stock self signed certificates in

Forward secrecy
The diffie-hellman certificate can be created using :

Third party modules
Download third party module source and move it to. Manually compile the selected Nginx module, then add the following line to :

Rebuild nginx with the third party module enabled:

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.