Zum Inhalt springen

Nginx

Aus Foxwiki

Nginx - Beschreibung

Beschreibung

nginx (gesprochen „engine x”) ist ein Webserver, der im Vergleich zu Apache (oder auch [wikipedia:Microsoft_Internet_Information_Services:IIS]) weniger Resourcen verbraucht und schnell ist

  • Aufgrund seiner eingebauten [wikipedia:Reverse_Proxy:Reverse-Proxy Funktionalität] wird nginx auch gerne als vorgeschalteter Webserver für dahinter liegende Applikationsserver genutzt

nginx wird laut w3techs.com Statistik von ca. 40% aller Websites genutzt (Stand: September 2017)

  • Damit ist nginx der am zweithäufigsten eingesetzte Webserver

Neben der freien Version von nginx, welche auch unter eine freien Lizenz steht, gibt es auch eine kostenpflichtige Variante namens nginx Plus, für den die Firma nginx Inc. zusätzlichen Support und Module anbietet

Installation

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch


Dokumentation

Man-Page
  1. prep(1)


Links

Projekt

Weblinks


TMP

Installation

sudo apt install nginx

Steuerung von nginx

Nginx bildet sich aus einem „Master”-Prozess und vielen „Slave”- bzw. „Client”-Prozessen

  • Man steuert nginx mit dem Master-Prozess, den man mit dem Befehl `nginx` anspricht
  • Dies geht nach folgendem Prinzip:

{{{#!vorlage Befehl nginx [-s signal] [-c filename] [-p prefix] [-g directives] }}}

Falls eine andere Konfigurationsdatei als /etc/nginx/nginx.conf, z. B. zu Testzwecken, verwendet werden soll, startet man nginx folgendermaßen:

{{{#!vorlage Befehl sudo nginx -c /pfad/der/konfigurationsdatei }}}

Nützlich ist auch die Option `-t`, welche die Konfiguration von nginx testet

  • Nach jeder Änderung eine Konfigurationsdatei sollte man von daher

{{{#!vorlage Befehl sudo nginx -t }}}

aufrufen und schauen, ob Fehler in einer der Konfigurationsdateien vorliegen

  • Wenn nicht, kann die Konfiguration neu eingelesen werden, so dass diese aktiv wird:

{{{#!vorlage Befehl sudo nginx -s reload }}}

Bei der Installation aus den Paketquellen wird nginx beim Systemstart über eine [:systemd:] Service Unit automatisch gestartet, welche über [:systemd/systemctl:systemctl] kontrolliert werden kann

Sicherheit

Man stelle sich vor, ein Hacker würde eine Datei via PHP/Perl/Python in das Verzeichnis /uploads/ hochladen

  • Diese Datei ist mit Schadcode infiziert und würde bei der Ausführung dem Server schaden
  • Wenn jetzt aber die Ausführung der Datei nicht verboten wird, könnte der Hacker seinen Angriff starten
  • Um das zu verhindern, fügt man in den `server { [...] }`-Block folgendes ein:

{{{ if ($uri !~ "^/uploads/") {

   fastcgi_pass 127.0.0.1:9000;

} }}}

Dies löst aus, dass alle Dateien, die sonst über die FastCGI-Schnittstelle an Port 9000 laufen würden, in allen Ordnern mit dem Namen uploads nicht mehr ausgeführt werden

nginx mit anderen Programmiersprachen

Die Nutzung von nginx in Kombination mit [:PHP:] ist im Artikel [:nginx/PHP:] beschrieben, die in Kombination mit [:Perl:] im Artikel [:nginx/Perl:]