Nginx Basis

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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).