Nginx/Konfiguration: Unterschied zwischen den Versionen
K Textersetzung - „ z. B.“ durch „ beispielsweise“ |
|||
| (7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
=== Beschreibung === | === Beschreibung === | ||
; Konfigurationsdateien | ; Konfigurationsdateien | ||
/etc/nginx/ | [[/etc/nginx/]] | ||
; Grundkonfigurationsdatei | ; Grundkonfigurationsdatei | ||
[[nginx.conf]] | |||
In dieser Datei kann | In dieser Datei kann beispielsweise fest gelegt werden, mit welchen Rechten nginx läuft, in welche Dateien geloggt wird und auch die Verwendung von SSL kann hier konfiguriert werden | ||
=== Aufbau === | === Aufbau === | ||
| Zeile 20: | Zeile 20: | ||
; Sektionen | ; Sektionen | ||
Innerhalb der `http`-Sektionen können auch ein oder mehrere Sektionen `server { [...] }` angelegt werden, was im Kontext von nginx einem "virtuellen Server" entspricht (was das äquivalent zu "virtual hosts" beim Apache Server ist) | Innerhalb der `http`-Sektionen können auch ein oder mehrere Sektionen `server { [...] }` angelegt werden, was im Kontext von nginx einem "virtuellen Server" entspricht (was das äquivalent zu "virtual hosts" beim Apache Server ist) | ||
* In den `server` Sektionen erfolgt die Konfiguration von | * In den `server` Sektionen erfolgt die Konfiguration von beispielsweise DocumentRoot, auf welcher IP-Adresse und auf welchem Port nginx lauscht, die Namensauflösung etc | ||
; `server` Sektion | ; `server` Sektion | ||
| Zeile 38: | Zeile 38: | ||
Zum Deaktivieren reicht es, den entsprechenden symbolischen Link aus dem Verzeichnis '''/etc/nginx/sites-enabled''' zu löschen | Zum Deaktivieren reicht es, den entsprechenden symbolischen Link aus dem Verzeichnis '''/etc/nginx/sites-enabled''' zu löschen | ||
=== | === Konfiguration === | ||
; Minimalkonfiguration | |||
Im folgenden Beispiel wird die vorhandene Konfigurationsdatei '''default''' um eine eigene Route erweitert, die eine einfache HTML-Seite ausgeben soll | Im folgenden Beispiel wird die vorhandene Konfigurationsdatei '''default''' um eine eigene Route erweitert, die eine einfache HTML-Seite ausgeben soll | ||
| Zeile 46: | Zeile 47: | ||
<syntaxhighlight lang="bash" highlight="1" line copy> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
location /test { | location /test { | ||
root /var/www/html/test; | |||
try_files $uri $uri/ =404; | try_files $uri $uri/ =404; | ||
} | } | ||
| Zeile 56: | Zeile 57: | ||
# Die dritte Zeile besagt, dass ein "404 - not found" zurückgeliefert werden soll, wenn keine passende (HTML) Datei gefunden wurde | # Die dritte Zeile besagt, dass ein "404 - not found" zurückgeliefert werden soll, wenn keine passende (HTML) Datei gefunden wurde | ||
Die Datei '''default''' sieht somit nach dem Hinzufügen | Die Datei '''default''' sieht somit nach dem Hinzufügen wie folgt aus | ||
* ohne Kommentarzeilen | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
server { | server { | ||
| Zeile 69: | Zeile 70: | ||
server_name _; | server_name _; | ||
location /test { | |||
root /var/www/html/test; | |||
try_files $uri $uri/ =404; | try_files $uri $uri/ =404; | ||
} | |||
location / { | location / { | ||
| Zeile 93: | Zeile 94: | ||
<syntaxhighlight lang="bash" highlight="1" line copy> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
server { | server { | ||
listen 80; | |||
listen [::]:80; | |||
root /var/www/html/test; | root /var/www/html/test; | ||
| Zeile 107: | Zeile 108: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
; sites-enabled | |||
Dann muss noch der symbolisch Link nach '''/etc/nginx/sites-enabled''' angelegt und die Konfiguration von nginx neu geladen werden: | Dann muss noch der symbolisch Link nach '''/etc/nginx/sites-enabled''' angelegt und die Konfiguration von nginx neu geladen werden: | ||
<syntaxhighlight lang="bash" highlight="1" line copy> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
| Zeile 133: | Zeile 135: | ||
=== Dokumentation === | === Dokumentation === | ||
<!-- | |||
; Man-Page | ; Man-Page | ||
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | # [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] | ||
; Info-Pages | ; Info-Pages | ||
--> | --> | ||
| Zeile 144: | Zeile 146: | ||
==== Weblinks ==== | ==== Weblinks ==== | ||
[[Kategorie:Nginx/Konfiguration]] | |||
</noinclude> | </noinclude> | ||
Aktuelle Version vom 16. Juni 2026, 09:29 Uhr
Nginx/Konfiguration - Nginx konfigurieren
Beschreibung
- Konfigurationsdateien
- Grundkonfigurationsdatei
In dieser Datei kann beispielsweise fest gelegt werden, mit welchen Rechten nginx läuft, in welche Dateien geloggt wird und auch die Verwendung von SSL kann hier konfiguriert werden
Aufbau
- Sektionen
- Diese besteht aus den Sektionen `events { [...] }` und `http { [...] }`
- Kommentare
- Kommentiert wird mit einer Raute (`#`)
- Zeilenende
- Jede Konfigurationszeile muss mit einem Semikolon `;` abgeschlossen werden
- Sektionen
Innerhalb der `http`-Sektionen können auch ein oder mehrere Sektionen `server { [...] }` angelegt werden, was im Kontext von nginx einem "virtuellen Server" entspricht (was das äquivalent zu "virtual hosts" beim Apache Server ist)
- In den `server` Sektionen erfolgt die Konfiguration von beispielsweise DocumentRoot, auf welcher IP-Adresse und auf welchem Port nginx lauscht, die Namensauflösung etc
- `server` Sektion
Es muss mindestens eine `server` Sektion vorhanden sein
- Es können aber auch ohne weiteres mehrere Sektion aufgeführt werden
- nginx arbeitet die `server` Sektionen von oben nach unten ab
- Treffen die Bedingungen in der Sektion auf die Anfrage zu, werden die entsprechenden Daten ausgeliefert
- Bei komplexen Konfigurationen sollte man deshalb auf die Reihenfolge der verschiedenen `server` Sektionen achten
- sites-available
Standardmäßig werden diese Daten in einer oder mehreren Dateien im Verzeichnis /etc/nginx/sites-available abgelegt und aktiviert
- Das Aktivieren geschieht dadurch, dass man einen [:ln:symbolische Link] der Datei /etc/nginx/sites-available/NAME_DER_DATEI nach /etc/nginx/sites-enabled/ anlegt
In der Standardinstallation ist bereits die Datei default vorhanden und aktiviert
- Diese Datei kann man um eigene `server` Sektionen erweitern, wie im folgenden Beispiel gezeigt wird
Zum Deaktivieren reicht es, den entsprechenden symbolischen Link aus dem Verzeichnis /etc/nginx/sites-enabled zu löschen
Konfiguration
- Minimalkonfiguration
Im folgenden Beispiel wird die vorhandene Konfigurationsdatei default um eine eigene Route erweitert, die eine einfache HTML-Seite ausgeben soll
Dazu öffnet man die Datei default mit einem Editor mit Root-Rechten[4][5] und fügt nach der Zeile `server_name: _;`
die folgenden Zeilen ein:
location /test {
root /var/www/html/test;
try_files $uri $uri/ =404;
}
- Erläuterung
- Die erste Zeile legt fest, dass der folgende Block an Direktiven für die Route `/test` gilt
- Die zweite Zeile legt das `root`-Verzeichnis, in dem nach (HTML-) Dateien gesucht wird, auf /var/www/html/test fest
- Die dritte Zeile besagt, dass ein "404 - not found" zurückgeliefert werden soll, wenn keine passende (HTML) Datei gefunden wurde
Die Datei default sieht somit nach dem Hinzufügen wie folgt aus
- ohne Kommentarzeilen
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location /test {
root /var/www/html/test;
try_files $uri $uri/ =404;
}
location / {
try_files $uri $uri/ =404;
}
}
Jetzt muss man noch das Verzeichnis /var/www/html/test anlegen und darin eine HTML-Datei index.html erstellt werden
Die geänderte Konfigurationsdatei wird mit dem folgenden Befehl auf Fehler getestet:
sudo nginx -t
Der Aufruf von `http://localhost/test` sollte jetzt die selbst angelegte HTML-Seite anzeigen
Möchte man die Route `/test` in einer eigenen Konfigurationsdatei namens test hinterlegen, sollte die Datei so aussehen:
server {
listen 80;
listen [::]:80;
root /var/www/html/test;
index index.html;
server_name test;
location /test {
try_files $uri $uri/ =404;
}
}
- sites-enabled
Dann muss noch der symbolisch Link nach /etc/nginx/sites-enabled angelegt und die Konfiguration von nginx neu geladen werden:
sudo nginx -s reload
Dateien
| Datei | Beschreibung |
|---|---|
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks