Nginx Basis: Unterschied zwischen den Versionen
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
= Installation = | = Installation = | ||
| − | + | ||
| − | * '''sudo apt | + | * '''Debian/Ubuntu:''' |
| − | + | * '''sudo apt install nginx''' | |
| − | * '''sudo dnf | + | |
| + | * '''Rocky/RHEL/CentOS:''' | ||
| + | * '''sudo dnf install nginx''' | ||
| + | (ggf. vorher: '''sudo dnf install epel-release''') | ||
=Start= | =Start= | ||
| Zeile 10: | Zeile 13: | ||
=Stop= | =Stop= | ||
*systemctl stop nginx | *systemctl stop nginx | ||
| + | =Enable= | ||
| + | *systemctl enable nginx | ||
=Restart= | =Restart= | ||
| Zeile 21: | Zeile 26: | ||
=Port check= | =Port check= | ||
| − | * | + | *ss -lntp | grep nginx |
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1438/nginx -g daemo | tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1438/nginx -g daemo | ||
tcp6 0 0 :::80 :::* LISTEN 1438/nginx -g daemo | tcp6 0 0 :::80 :::* LISTEN 1438/nginx -g daemo | ||
| − | = | + | =Webseiteninhalt= |
| + | Standardverzeichnis für Webseiteninhalte: | ||
*/var/www/html | */var/www/html | ||
| − | = | + | =Konfigurationsverzeichnis= |
| − | + | ||
| − | + | '''/etc/nginx''' | |
| + | Dies ist das Hauptverzeichnis für alle nginx-Konfigurationsdateien. | ||
| + | Hier befinden sich die globale Konfiguration sowie alle Unterverzeichnisse für virtuelle Hosts und zusätzliche Einstellungen. | ||
| − | */ | + | Unterschiede: |
| − | + | * '''Debian/Ubuntu:''' nutzt zusätzlich die Verzeichnisse ''sites-available'' und ''sites-enabled'' für virtuelle Hosts. | |
| + | * '''Rocky/RHEL/CentOS:''' nutzt diese Verzeichnisse nicht. Stattdessen wird direkt mit ''conf.d'' gearbeitet. | ||
| − | + | =Hauptkonfiguration= | |
| − | |||
| − | + | '''/etc/nginx/nginx.conf''' | |
| − | + | Dies ist die zentrale Konfigurationsdatei. Sie steuert globale Einstellungen wie Worker-Prozesse, Protokolle, SSL und das Einbinden weiterer Konfigurationsdateien. | |
| − | + | =Weitere Verzeichnisse= | |
| − | |||
| − | + | '''/etc/nginx/sites-available''' | |
| − | + | Wird unter Debian/Ubuntu verwendet, um virtuelle Hosts (Server-Blocks) zu definieren. Diese Konfigurationsdateien müssen per Symlink in ''sites-enabled'' aktiviert werden. | |
| − | |||
| − | + | '''/etc/nginx/sites-enabled''' | |
| − | + | Beinhaltet Symlinks auf aktivierte Server-Blocks aus ''sites-available''. Nur diese Konfigurationen werden geladen. | |
| − | = | + | '''/etc/nginx/conf.d''' |
| − | + | Dieses Verzeichnis wird von allen Distributionen verwendet (besonders unter Rocky/RHEL/CentOS), um zusätzliche Konfigurationsdateien im Stil von *.conf automatisch einzubinden. | |
| + | |||
| + | '''/etc/nginx/snippets''' | ||
| + | Nur unter Debian/Ubuntu vorhanden. Enthält wiederverwendbare Konfigurations-Schnipsel, die per ''include'' eingebunden werden können. | ||
| + | |||
| + | =Server-Logs= | ||
| + | |||
| + | '''/var/log/nginx/access.log''' | ||
| + | Hier werden alle HTTP-Anfragen protokolliert (sofern aktiviert). | ||
| + | |||
| + | '''/var/log/nginx/error.log''' | ||
| + | Hier werden Fehler protokolliert, z. B. Syntaxfehler in Konfigurationen oder Laufzeitprobleme. | ||
| + | |||
| + | =Inhalt der nginx.conf= | ||
| + | |||
| + | '''/etc/nginx/nginx.conf''' | ||
<pre> | <pre> | ||
user www-data; | user www-data; | ||
| Zeile 79: | Zeile 100: | ||
</pre> | </pre> | ||
| − | + | =Erklärung der wichtigsten Direktiven= | |
| + | |||
===user=== | ===user=== | ||
| − | + | Legt den Benutzer fest, unter dem nginx läuft. | |
| + | * '''Debian/Ubuntu:''' www-data | ||
| + | * '''Rocky/RHEL/CentOS:''' nginx | ||
===pid=== | ===pid=== | ||
| − | Datei, in der die Prozess-ID gespeichert wird. | + | Pfad zur Datei, in der die Prozess-ID gespeichert wird. |
| + | |||
| + | ===worker_processes / worker_connections=== | ||
| + | Steuert, wie viele Prozesse und gleichzeitige Verbindungen nginx verarbeiten kann. | ||
===keepalive_timeout=== | ===keepalive_timeout=== | ||
| Zeile 90: | Zeile 117: | ||
===http=== | ===http=== | ||
| − | Beginnt den HTTP- | + | Beginnt den Hauptblock für HTTP-bezogene Konfigurationen. |
===include=== | ===include=== | ||
| − | Bindet | + | Bindet weitere Konfigurationsdateien ein, z. B. aus ''conf.d'' oder ''sites-enabled''. |
===ssl_protocols=== | ===ssl_protocols=== | ||
| − | + | Legt fest, welche SSL/TLS-Versionen erlaubt sind. | |
===access_log=== | ===access_log=== | ||
| − | Pfad zur Datei, in der Zugriffe | + | Pfad zur Datei, in der Zugriffe protokolliert werden. |
===error_log=== | ===error_log=== | ||
Pfad zur Datei, in der Fehler protokolliert werden. | Pfad zur Datei, in der Fehler protokolliert werden. | ||
| + | |||
| + | ===gzip=== | ||
| + | Aktiviert die GZIP-Komprimierung, um die Antwortgrößen zu reduzieren. | ||
| + | |||
| + | ===types_hash_max_size=== | ||
| + | Legt die maximale Anzahl von MIME-Type-Hash-Einträgen fest (für Performance-Tuning). | ||
Aktuelle Version vom 27. März 2025, 07:40 Uhr
Installation
- Debian/Ubuntu:
- sudo apt install nginx
- Rocky/RHEL/CentOS:
- sudo dnf install nginx
(ggf. vorher: sudo dnf install epel-release)
Start
- systemctl start nginx
Stop
- systemctl stop nginx
Enable
- systemctl enable nginx
Restart
- systemctl restart nginx
Reload
- systemctl reload nginx
Status
- systemctl status nginx
Port check
- ss -lntp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1438/nginx -g daemo tcp6 0 0 :::80 :::* LISTEN 1438/nginx -g daemo
Webseiteninhalt
Standardverzeichnis für Webseiteninhalte:
- /var/www/html
Konfigurationsverzeichnis
/etc/nginx Dies ist das Hauptverzeichnis für alle nginx-Konfigurationsdateien. Hier befinden sich die globale Konfiguration sowie alle Unterverzeichnisse für virtuelle Hosts und zusätzliche Einstellungen.
Unterschiede:
- Debian/Ubuntu: nutzt zusätzlich die Verzeichnisse sites-available und sites-enabled für virtuelle Hosts.
- Rocky/RHEL/CentOS: nutzt diese Verzeichnisse nicht. Stattdessen wird direkt mit conf.d gearbeitet.
Hauptkonfiguration
/etc/nginx/nginx.conf Dies ist die zentrale Konfigurationsdatei. Sie steuert globale Einstellungen wie Worker-Prozesse, Protokolle, SSL und das Einbinden weiterer Konfigurationsdateien.
Weitere Verzeichnisse
/etc/nginx/sites-available Wird unter Debian/Ubuntu verwendet, um virtuelle Hosts (Server-Blocks) zu definieren. Diese Konfigurationsdateien müssen per Symlink in sites-enabled aktiviert werden.
/etc/nginx/sites-enabled Beinhaltet Symlinks auf aktivierte Server-Blocks aus sites-available. Nur diese Konfigurationen werden geladen.
/etc/nginx/conf.d Dieses Verzeichnis wird von allen Distributionen verwendet (besonders unter Rocky/RHEL/CentOS), um zusätzliche Konfigurationsdateien im Stil von *.conf automatisch einzubinden.
/etc/nginx/snippets Nur unter Debian/Ubuntu vorhanden. Enthält wiederverwendbare Konfigurations-Schnipsel, die per include eingebunden werden können.
Server-Logs
/var/log/nginx/access.log Hier werden alle HTTP-Anfragen protokolliert (sofern aktiviert).
/var/log/nginx/error.log Hier werden Fehler protokolliert, z. B. Syntaxfehler in Konfigurationen oder Laufzeitprobleme.
Inhalt der nginx.conf
/etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Erklärung der wichtigsten Direktiven
user
Legt den Benutzer fest, unter dem nginx läuft.
- Debian/Ubuntu: www-data
- Rocky/RHEL/CentOS: nginx
pid
Pfad zur Datei, in der die Prozess-ID gespeichert wird.
worker_processes / worker_connections
Steuert, wie viele Prozesse und gleichzeitige Verbindungen nginx verarbeiten kann.
keepalive_timeout
Gibt an, wie lange eine Verbindung offen gehalten wird (in Sekunden).
http
Beginnt den Hauptblock für HTTP-bezogene Konfigurationen.
include
Bindet weitere Konfigurationsdateien ein, z. B. aus conf.d oder sites-enabled.
ssl_protocols
Legt fest, welche SSL/TLS-Versionen erlaubt sind.
access_log
Pfad zur Datei, in der Zugriffe protokolliert werden.
error_log
Pfad zur Datei, in der Fehler protokolliert werden.
gzip
Aktiviert die GZIP-Komprimierung, um die Antwortgrößen zu reduzieren.
types_hash_max_size
Legt die maximale Anzahl von MIME-Type-Hash-Einträgen fest (für Performance-Tuning).