techlogia — KI- und Web-Dienstleister Berlin
Alle Kurse
Frei lesbar – ohne Anmeldung

nginx als Reverse-Proxy

Du stellst nginx vor ein python3-Backend, das nur auf 127.0.0.1:9000 hört. Klassischer Web-Stack: Backend produziert Content, nginx kümmert sich um Port 80, Caching, Logs und SSL. Vier Aufgaben, ca. 40 Minuten. Vorstufe zum deploy-and-tls-Modul (das ist diese Architektur + Let's-Encrypt).

Dauer: 40 Min.Niveau: EinsteigerAufgaben: 4

Backend hinter nginx packen

nginx als Reverse-Proxy

Ein Reverse-Proxy ist ein Server, der Anfragen aus dem Internet annimmt und an ein Backend im Hintergrund weiterleitet. Der Browser spricht nur mit nginx (Port 80/443); das eigentliche Programm (hier ein Python-Backend) lauscht nur lokal auf 127.0.0.1:9000 und ist von außen gar nicht erreichbar.

Warum macht man das?

  • Sicherheit: das Backend ist nicht direkt exponiert.
  • TLS/HTTPS: nginx übernimmt die Verschlüsselung zentral.
  • Caching, Logs, Lastverteilung: nginx kann das für viele Backends gebündelt erledigen.

Das ist der klassische Web-Stack — und die Vorstufe zum Modul „Live-Webseite mit HTTPS deployen".

Wichtige Begriffe

  • Backend: das Programm, das den Inhalt erzeugt (lauscht hier auf 127.0.0.1:9000).
  • proxy_pass: die nginx-Direktive, die Anfragen ans Backend weiterreicht.
  • sites-available / sites-enabled: nginx legt Site-Konfigs in sites-available/ ab und aktiviert sie per Symlink in sites-enabled/.

Dein Ziel

Du konfigurierst nginx so, dass Port 80 die Anfragen an das lokale Backend auf Port 9000 weiterleitet.

Aufgaben

  1. 1. nginx läuft

    Begriff: Dienst-Status. Ein Reverse-Proxy nützt nichts, wenn nginx nicht läuft. Stelle sicher, dass der nginx-Dienst aktiv ist.

    sudo systemctl enable --now nginx

    Kontrolle: systemctl is-active nginx meldet active.

  2. 2. Site-Config geschrieben

    Begriff: Site-Konfiguration. Eine Site-Config beschreibt, wie nginx eine bestimmte Webseite behandelt. Mit proxy_pass leitest du alle Anfragen an das lokale Backend weiter.

    Erstelle /etc/nginx/sites-available/lab-proxy.conf (sudo nano ...) mit:

    server {
        listen 80;
        location / {
            proxy_pass http://127.0.0.1:9000;
            proxy_set_header Host $host;
        }
    }

    Kontrolle: /etc/nginx/sites-available/lab-proxy.conf enthält proxy_pass http://127.0.0.1:9000.

  3. 3. Site enablen

    Begriff: Site aktivieren (Symlink). Eine Config in sites-available/ ist nur vorhanden, nicht aktiv. Aktiv wird sie durch einen Symlink nach sites-enabled/. Entferne die Default-Site, damit sie nicht stört, und lade nginx neu.

    sudo ln -sf /etc/nginx/sites-available/lab-proxy.conf /etc/nginx/sites-enabled/lab-proxy.conf
    sudo rm -f /etc/nginx/sites-enabled/default
    sudo nginx -t && sudo systemctl reload nginx

    Kontrolle: /etc/nginx/sites-enabled/lab-proxy.conf existiert und enthält proxy_pass http://127.0.0.1:9000.

  4. 4. Proxy liefert Backend-Content

    Begriff: End-to-End-Test. Konfiguration prüfen heißt: live testen, dass nginx den Backend-Inhalt wirklich ausliefert. Rufe localhost auf Port 80 ab — du musst die Antwort des Backends sehen.

    curl -s http://localhost/ > /tmp/nginx-output.txt
    cat /tmp/nginx-output.txt

    Kontrolle: /tmp/nginx-output.txt enthält Hello from Lab-Backend (der Proxy reicht den Backend-Inhalt durch).

Jetzt selbst üben

Lesen ist gut – selbst machen ist besser. Starte diesen Kurs an einer echten Linux-VM, direkt im Browser. Ein kostenloses Konto genügt.

Kostenlos starten

Lab-Inhalte unter CC BY 4.0 – frei nutzbar mit Namensnennung (© TechLogia).

nginx als Reverse-Proxy