# NGINX: Reverse Proxy, Load Balancing & Content Caching

TL;DR / Management Summary NGINX (sprich: Engine X) ist weit mehr als ein einfacher Webserver. In modernen Infrastrukturen agiert er primär als Reverse Proxy. Er nimmt Anfragen entgegen und leitet sie an interne Applikations-Server oder Container (LXC/Docker) weiter. Ein Senior Admin nutzt NGINX, um statische Inhalte (Bilder, JS) zwischenzuspeichern (Caching) und so die Last auf den Datenbanken massiv zu senken.


# 1. Nginx als Reverse Proxy

Der schlaue Vermittler.

Ein Reverse Proxy steht “vor” dem eigentlichen Server.

location / {
    proxy_pass http://internal-server:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

# 2. Load Balancing mit Nginx

Einfache Verteilung.

Nginx kann Traffic auf mehrere Backends verteilen (Upstream).

upstream backend_cluster {
    server 10.0.1.51 weight=3;
    server 10.0.1.52;
    server 10.0.1.53 backup;
}

# 3. Deep Dive: Content Caching

Den Turbo zuschalten.

Warum sollte die Datenbank jedes Mal das gleiche Logo berechnen?


# 4. Day-2 Operations: Web Application Firewall (WAF)

Schutz vor Injektionen.

Mit dem Modul ModSecurity wird Nginx zum Sicherheitswächter.


# 5. Troubleshooting & “War Stories”

Wenn der Proxy blockiert.

# Top 3 Fehlerbilder

  1. Symptom: “413 Request Entity Too Large”.

    • Ursache: User versucht eine große Datei hochzuladen, Nginx limitiert dies jedoch.
    • Lösung: client_max_body_size 100M; in der Config setzen.
  2. Symptom: Bilder oder CSS werden nicht geladen (Mixed Content).

    • Ursache: Der Proxy spricht HTTP mit dem Backend, der User nutzt aber HTTPS. Absolute URLs im HTML zeigen nun auf HTTP.
    • Fix: Nutzen Sie sub_filter, um Links im Output dynamisch zu ersetzen.
  3. Symptom: “504 Gateway Timeout”.

    • Ursache: Das Backend braucht zu lange für die Antwort (z.B. komplexe Suche).
    • Lösung: proxy_read_timeout erhöhen.

# “War Story”: Der “Caching” Teufel

Ein Admin aktivierte ein aggressives Caching für ein internes Firmenportal. Das Ereignis: Mitarbeiter beschwerten sich, dass sie nach dem Login die Daten des vorherigen Kollegen sahen. Die Ursache: Nginx hatte die personalisierte Startseite inklusive der Session-Daten gecacht, da der App-Server keinen Cache-Control: private Header mitschickte. Lehre: Cachen Sie niemals personalisierte oder authentifizierte Inhalte, außer Sie nutzen feingranulare Cache-Keys, die den Session-Cookie berücksichtigen.


# 6. Monitoring & Reporting

Dashboarding.

# Nginx VTS (Virtual Host Traffic Status)

Installieren Sie das VTS-Modul für detaillierte JSON-Statistiken.


# 7. Fazit & Empfehlung

Nginx ist der Alleskönner für Web-Workloads.


# Anhang: Cheatsheet (Nginx CLI)

Aufgabe Befehl
Config testen nginx -t
Neu laden (Zero Downtime) nginx -s reload
Version sehen nginx -v
Logs live tail -f /var/log/nginx/access.log

# Referenzen