Wie man Nginx als Reverse Proxy auf Ubuntu 22.04 konfiguriert

Einführung für die Konfiguration von Nginx als Reverse Proxy

Ein Reverse Proxy ist die empfohlene Methode, um einen Anwendungsserver im Internet bereitzustellen. Egal ob Sie eine Node.js-Anwendung in der Produktion betreiben oder einen minimalen integrierten Webserver mit Flask verwenden, diese Anwendungsserver binden oft an localhost mit einem TCP-Port. Das bedeutet, dass Ihre Anwendung nur lokal auf dem Computer zugänglich ist, auf dem sie sich befindet. Die Verwendung eines Reverse Proxys in der Produktion bietet Sicherheitsvorteile, zentralisierten Firewall-Schutz und eine minimierte Angriffsfläche für häufige Bedrohungen wie Denial-of-Service-Angriffe.

Dieses Tutorial zeigt, wie Sie einen Reverse Proxy mit Nginx einrichten. Sie installieren Nginx, konfigurieren es mit der proxy_pass-Direktive und leiten Header aus Client-Anfragen weiter. Optional richten Sie eine Testanwendung mit dem WSGI-Server Gunicorn ein.

Voraussetzungen für die Konfiguration von Nginx als Reverse Proxy

Um dieses Tutorial abzuschließen, benötigen Sie:

  • Einen Ubuntu 22.04-Server mit einem nicht-root sudo-fähigen Benutzer und einer Firewall. Folgen Sie unserem Leitfaden zur ersten Serverkonfiguration.
  • Die Adresse des Anwendungsservers, den Sie proxen möchten, bezeichnet als app_server_address. Dies kann eine IP-Adresse mit einem TCP-Port oder ein Unix-Domain-Socket sein.
  • Einen Domainnamen, der auf die öffentliche IP Ihres Servers zeigt und mit Nginx konfiguriert ist, um Ihren Anwendungsserver zu proxen.

Schritt 1 — Nginx als Reverse Proxy installieren

Nginx kann mit apt über die Standard-Repositories installiert werden. Führen Sie die folgenden Befehle aus:


sudo apt update
sudo apt install nginx
sudo ufw allow 'Nginx HTTP'
systemctl status nginx
  

Stellen Sie sicher, dass Nginx läuft und über die Firewall zugänglich ist.

Schritt 2 — Konfiguration Ihres Serverblocks

Erstellen Sie eine benutzerdefinierte Konfigurationsdatei für Ihre neuen Serverblock-Erweiterungen:


sudo nano /etc/nginx/sites-available/your_domain
  

Fügen Sie die folgende Konfiguration ein, wobei Sie your_domain und app_server_address ersetzen:


server {
    listen 80;
    listen [::]:80;

    server_name your_domain www.your_domain;

    location / {
        proxy_pass app_server_address;
        include proxy_params;
    }
}
  

Speichern und schließen Sie die Datei, aktivieren Sie dann die Konfiguration:


sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
  

Schritt 3 — Testen Ihres Reverse Proxys mit Gunicorn (Optional)

Falls Sie keinen Anwendungsserver haben, richten Sie Gunicorn zum Testen ein:


sudo apt update
sudo apt install gunicorn
nano test.py
  

Fügen Sie für die Konfiguration von Nginx als Reverse Proxy den folgenden Code in test.py ein:


def app(environ, start_response):
    start_response("200 OK", [])
    return iter([b"Hello, World!"])
  

Starten Sie den Server:


gunicorn --workers=2 test:app
  

Navigieren Sie zu your_domain in Ihrem Browser, um den Reverse Proxy zu testen.

Fazit zur Konfiguration von Nginx als Reverse Proxy

Mit diesem Tutorial haben Sie Nginx als Reverse Proxy konfiguriert, um den Zugriff auf Ihre Anwendungsserver zu ermöglichen, die sonst nur lokal zugänglich wären. Außerdem haben Sie das Weiterleiten von Anforderungsheadern konfiguriert. Für weitere Beispiele sehen Sie sich Tutorials zum Bereitstellen von Flask-Anwendungen mit Gunicorn und Nginx oder zum Ausführen einer Meilisearch-Frontend-Anwendung mit InstantSearch auf Ubuntu 22.04 an.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: