Veröffentlicht am

Nginx: Webserver, Reverse Proxy und Kubernetes Ingress Controller

Teilen:
Authors

Nginx: Webserver, Reverse Proxy und Kubernetes Ingress Controller

TL;DR

  • Nginx ist die Software, die hinter einem Großteil des modernen Webs steckt — vom simplen Webserver über Reverse Proxy bis zum Kubernetes-Ingress-Controller. Eine Software, drei Rollen.
  • Webserver: beantwortet Browser-Anfragen — auch bei Millionen Anfragen performant, besonders bei statischen Inhalten.
  • Reverse Proxy: Load Balancing, Caching, SSL/TLS, Security und Kompression — der einzige öffentlich erreichbare Einstiegspunkt.
  • Kubernetes Ingress Controller: das Pendant für den Cluster — nimmt Traffic an, routet intelligent zu Services.
  • Der Ingress Controller ist nicht direkt öffentlich erreichbar — er lebt im Cluster-Netz und wird vom Cloud-Load-Balancer gefüttert. Das ist die entscheidende Sicherheits-Ebene.

Drei Rollen, eine Software

Nginx wurde als Webserver-Software geboren und hat sich zur universellen Proxy-/Traffic-Schicht entwickelt. Die Reise:

  1. Webserver: Browser → eine Server-Maschine → Webseite zurück.
  2. Skalierung: Millionen Anfragen → 10 Nginx-Server + Nginx als Load Balancer davor.
  3. Mehr Funktionen: Caching, Security, TLS, Kompression.
  4. Kubernetes: Nginx als Ingress Controller — Reverse Proxy für den Cluster.

Rolle 1: Webserver — der Ursprung

Der Browser fragt eine Webseite an, der Nginx-Webserver stellt sie zusammen und liefert sie zurück. Die Stärke liegt in hoher Performance bei statischen Inhalten und vielen gleichzeitigen Verbindungen:

server {
    listen 80;
    server_name example.com;

    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

Rolle 2: Reverse Proxy & Load Balancer — die Skalierungs-Stufe

Als die Web-Auslastung stieg, brauchte man mehrere Server:

  • Load Balancing: Nginx verteilt Anfragen (Round-Robin oder Least-Busy) auf mehrere Webserver.
  • Caching: Eine statische Ressource einmal zusammenstellen, allen ausliefern — spart DB-Zugriffe und Bandbreite.
  • Security: Nginx ist der einzige öffentlich erreichbare Einstiegspunkt — statt 100 Server abzusichern, sichert man einen. Reduziert die Angriffsfläche enorm.
  • TLS: Nginx akzeptiert nur verschlüsselten Traffic, terminiert SSL, erzwingt HTTPS.
  • Kompression: Große Dateien komprimieren und in Chunks senden — spart Bandbreite auf beiden Seiten.
  • Intelligentes Routing: nach Headers, Cookies, URL-Pfad — z. B. „/payment → Payment-Service".
upstream backend_servers {
    server 10.0.0.1:8080;
    server 10.0.0.2:8080;
}

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/nginx/tls/fullchain.pem;
    ssl_certificate_key /etc/nginx/tls/privkey.pem;

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
    }
}

Alles ist deklarativ konfigurierbar — und klar erkennbar: Proxy-Funktionen haben den proxy_-Präfix, leicht zu unterscheiden von Webserver-Direktiven.

Nginx vs. Express (Node) & Apache

NginxExpress (Node)Apache
RolleHochleistungs-Webserver + Reverse ProxyMinimalistisches Web-FrameworkWebserver + Proxy
StärkeStatische Inhalte, Konkurrenz, KonfigurationDynamische Apps/APIsWeit verbreitet, flexibel
In ProduktionVorne (static, LB, SSL)Dahinter (dynamisch)Älter, weniger performant bei statischen Massen

Nginx-Vorteile: schneller, leichtgewichtiger, exzellent bei statischen Dateien, klare Konfiguration, stark im Container-Umfeld. In Produktion werden Nginx (vorne) und Express (dahinter, für dynamische Logik) oft kombiniert.


Rolle 3: Kubernetes Ingress Controller

In Kubernetes übernimmt Nginx die Rolle des Reverse Proxy für den Cluster:

  • Cloud Load Balancer (z. B. AWS ELB) = öffentlicher Einstieg → Nginx Ingress Controller im Cluster.
  • Der Ingress Controller nimmt Traffic an und routet intelligent — z. B. URL-Pfad → Microservice.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: shop
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  tls:
    - hosts:
        - shop.example.com
      secretName: shop-tls
  rules:
    - host: shop.example.com
      http:
        paths:
          - path: /payment
            pathType: Prefix
            backend:
              service:
                name: payment-service
                port:
                  number: 8080
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web-service
                port:
                  number: 80

Wichtig: Der Ingress Controller ist nicht direkt öffentlich erreichbar — er lebt im Cluster-Netz und wird vom Cloud-Load-Balancer gefüttert. Das ist die entscheidende Sicherheits-Ebene: Eine Ebene öffentlich (Cloud-LB), eine Ebene intelligent im Cluster (Ingress), das Backend bleibt privat.


Warum professioneller Nginx-Betrieb wichtig ist

Nginx ist mächtig — aber seine Konfiguration ist auch eine Fehlerquelle:

  • Falsches Routing führt zu Ausfällen oder falschen Backends.
  • TLS-Fehler (falsche Terminierung oder Weiterleitung) öffnen Sicherheitslücken.
  • Security über einen Einstiegspunkt funktioniert nur, wenn wirklich alles durch den Proxy geht — sonst ist die Angriffsfläche nicht reduziert.
  • Ingress-Konfiguration in Kubernetes ist Betriebsarbeit: Routing, TLS, Policies müssen laufend gepflegt werden.
  • Leistung braucht korrektes Setup: Caching, Kompression und LB-Algorithmen müssen zum Workload passen.

Genau hier unterscheidet sich professioneller Betrieb von „irgendwie lauffähig": Die Ingress-Architektur (Cloud LB + Nginx Ingress), intelligentes Routing, TLS-Terminierung, reduzierte Angriffsfläche und WAF-Integration gehören in ein betriebenes Setup — mit Konfiguration, Updates, Monitoring und Skalierung aus einer Hand.


Fazit

Nginx ist eine der vielseitigsten und schnellsten Komponenten der Web-Architektur:

  1. Webserver — performant bei statischen Inhalten und Millionen Verbindungen.
  2. Reverse Proxy — Load Balancing, Caching, TLS, Security, Kompression.
  3. Ingress Controller — der Reverse Proxy für Kubernetes, mit intelligentem Routing.
  4. Sicherheits-Ebenen trennen — Cloud-LB außen, Ingress innen, Backend privat.

Wer Nginx versteht und korrekt betreibt, hat ein Fundament, das von der kleinen Website bis zum Kubernetes-Cluster trägt.


FAQ

Ist Nginx ein Webserver oder ein Proxy? Beides — und mehr. Es ist eine Software, die je nach Konfiguration als Webserver, Reverse Proxy, Load Balancer oder Kubernetes-Ingress-Controller arbeitet.

Warum brauche ich Nginx, wenn die Cloud einen Load Balancer hat? Der Cloud-LB ist der äußere Einstieg; der Nginx-Ingress macht das intelligente Routing, TLS und Security im Cluster. Beide Ebenen gehören zusammen.

Nginx oder Express? Beide — in Kombination. Nginx vorne (static, LB, SSL), Express dahinter (dynamische Logik).

Ist der Ingress Controller direkt aus dem Internet erreichbar? Nein. Er lebt im Cluster-Netz und wird vom Cloud-Load-Balancer gefüttert — das ist die entscheidende Sicherheits-Ebene.


Verwandte Artikel

📖 Verwandte Artikel

Weitere interessante Beiträge zu ähnlichen Themen