Zum Inhalt springen

NGINX: Unterschied zwischen den Versionen

Aus Foxwiki
Weiterleitung nach Nginx erstellt
 
(65 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''{{BASEPAGENAME}}''' - Beschreibung
#WEITERLEITUNG [[nginx]]
 
== Beschreibung ==
[https://nginx.org 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 [https://w3techs.com/technologies/overview/web_server/all 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 [https://opensource.org/licenses/BSD-2-Clause freien Lizenz] steht, gibt es auch eine kostenpflichtige Variante namens [https://www.nginx.com/products/nginx/ nginx Plus], für den die Firma nginx Inc. zusätzlichen Support und Module anbietet
 
== Installation ==
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo apt install nginx
</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 ====
# [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}}
{{DISPLAYTITLE:new}}
 
[[Kategorie:new]]
 
</noinclude>
 
= TMP =
 
== 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.&nbsp;B.&nbsp;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:]

Aktuelle Version vom 18. März 2026, 12:04 Uhr

Weiterleitung nach: