Nginx Basis: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| 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 25: | Zeile 28: | ||
tcp6 0 0 :::80 :::* LISTEN 1438/nginx -g daemo | tcp6 0 0 :::80 :::* LISTEN 1438/nginx -g daemo | ||
= | =Webseiteninhalt= | ||
*/var/www/html | 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''' | |||
<pre> | <pre> | ||
user www-data; | user www-data; | ||
| Zeile 79: | Zeile 98: | ||
</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 115: | ||
===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). | |||
Version vom 26. März 2025, 15:19 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
Restart
- systemctl restart nginx
Reload
- systemctl reload nginx
Status
- systemctl status nginx
Port check
- netstat -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).