|
|
| (72 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| '''{{BASEPAGENAME}}''' - Beschreibung
| | #WEITERLEITUNG [[nginx]] |
| | |
| == Beschreibung ==
| |
| | |
| == Installation ==
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| </syntaxhighlight>
| |
| | |
| == Aufruf ==
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| </syntaxhighlight>
| |
| | |
| === Optionen ===
| |
| {| class="wikitable sortable options gnu big"
| |
| |-
| |
| ! Unix !! GNU !! Parameter !! Beschreibung
| |
| |-
| |
| | || || ||
| |
| |-
| |
| |}
| |
| | |
| === Parameter ===
| |
| === Umgebungsvariablen ===
| |
| === Exit-Status ===
| |
| {| class="wikitable options col1center big"
| |
| |-
| |
| ! Wert !! Beschreibung
| |
| |-
| |
| | 0 || Erfolg
| |
| |-
| |
| | >0 || Fehler
| |
| |}
| |
| | |
| == Anwendung ==
| |
| <syntaxhighlight lang="bash" highlight="1" line copy>
| |
| </syntaxhighlight>
| |
| | |
| === Problembehebung ===
| |
| | |
| == Konfiguration ==
| |
| === Dateien ===
| |
| {| class="wikitable options big"
| |
| |-
| |
| ! Datei !! Beschreibung
| |
| |-
| |
| | ||
| |
| |-
| |
| | ||
| |
| |}
| |
| | |
| <noinclude>
| |
| | |
| == Anhang ==
| |
| === Siehe auch ===
| |
| <div style="column-count:2">
| |
| <categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
| |
| </div>
| |
| ----
| |
| {{Special:PrefixIndex/{{BASEPAGENAME}}/}}
| |
| | |
| === Dokumentation ===
| |
| ; Man-Page
| |
| # [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | |
| | |
| <!--
| |
| ; Info-Pages
| |
| -->
| |
| | |
| === Links ===
| |
| ==== Projekt ====
| |
| ==== Weblinks ====
| |
| | |
| {{DEFAULTSORT:new}}
| |
| {{DISPLAYTITLE:new}}
| |
| | |
| [[Kategorie:new]]
| |
| | |
| </noinclude>
| |
| | |
| = TMP =
| |
| [https://nginx.org nginx] {en} (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 [https://w3techs.com/technologies/overview/web_server/all w3techs.com Statistik] {en} 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 [https://opensource.org/licenses/BSD-2-Clause freien Lizenz] {en} steht, gibt es auch eine kostenpflichtige Variante namens [https://www.nginx.com/products/nginx/ nginx Plus] {en}, für den die Firma nginx Inc. zusätzlichen Support und Module anbietet
| |
| | |
| == 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:]
| |
| | |
| == Links ==
| |
| * [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
| |
| | |
| #tag: Netzwerk, Internet, Server
| |