Zum Inhalt springen

Nginx: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 77: Zeile 77:
==== Projekt ====
==== Projekt ====
==== Weblinks ====
==== Weblinks ====
# [https://wiki.nginx.org/ nginx Wiki] {en} - Dokumentation
# [https://docs.nginx.com/nginx/ nginx Docs] {en} - Dokumentation für nginx Plus, welche aber auch in weiten Teil für die freie Variante von nginx zutrifft
# [https://hg.nginx.org/nginx/ Quellcode Repositry] {en} von nginx bei Mercurial
# [https://sherbers.de/howto/nginx/ Sichere SSL/TLS Konfiguration mit Nginx] {de} - Ausführliche Anleitung
# [https://library.linode.com/web-servers/nginx/ Hosting Websites with Nginx] {en} - Weiterführende Konfiguration
# [https://www.my-it-brain.de/wordpress/certificate-pinning-mit-nginx/ Certificate Pinning mit Nginx] {de} - Artikel zum "Public Key Pinning for HTTP" (RFC 7469)
# [https://nhi1.selfhost.co/wiki/index.php?title=HOWTO_use_virtual_hosts_in_NGINX_to_run_multiple_web-application_on_a_single_server VHOST example] {en} - für das Heim-Netzwerk


{{DEFAULTSORT:new}}
{{DEFAULTSORT:new}}

Version vom 11. Oktober 2025, 10:33 Uhr

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

  1. nginx Wiki {en} - Dokumentation
  2. nginx Docs {en} - Dokumentation für nginx Plus, welche aber auch in weiten Teil für die freie Variante von nginx zutrifft
  3. Quellcode Repositry {en} von nginx bei Mercurial
  4. Sichere SSL/TLS Konfiguration mit Nginx {de} - Ausführliche Anleitung
  5. Hosting Websites with Nginx {en} - Weiterführende Konfiguration
  6. Certificate Pinning mit Nginx {de} - Artikel zum "Public Key Pinning for HTTP" (RFC 7469)
  7. VHOST example {en} - für das Heim-Netzwerk


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:]