Nginx/Konfiguration: Unterschied zwischen den Versionen
Markierung: Ersetzt |
K Textersetzung - „ z. B.“ durch „ beispielsweise“ |
||
| (30 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
''' | '''Nginx/Konfiguration''' - Nginx konfigurieren | ||
== Beschreibung == | === Beschreibung === | ||
; Konfigurationsdateien | |||
[[/etc/nginx/]] | |||
; Grundkonfigurationsdatei | |||
[[nginx.conf]] | |||
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: | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
location /test { | |||
root /var/www/html/test; | |||
try_files $uri $uri/ =404; | |||
} | |||
</syntaxhighlight> | |||
; 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 | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
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; | |||
} | |||
} | |||
</syntaxhighlight> | |||
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: | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | <syntaxhighlight lang="bash" highlight="1" line copy> | ||
sudo nginx -t | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | 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: | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
server { | |||
listen 80; | |||
listen [::]:80; | |||
root /var/www/html/test; | |||
index index.html; | |||
server_name test; | |||
location /test { | |||
try_files $uri $uri/ =404; | |||
} | |||
} | |||
</syntaxhighlight> | |||
; sites-enabled | |||
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> | |||
sudo nginx -s reload | |||
</syntaxhighlight> | |||
=== Dateien === | === Dateien === | ||
{| class="wikitable options big" | {| class="wikitable options big" | ||
| Zeile 31: | 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 42: | Zeile 146: | ||
==== Weblinks ==== | ==== Weblinks ==== | ||
[[Kategorie:Nginx/Konfiguration]] | |||
[[Kategorie: | |||
</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