NGINX Reverse Proxy unter Ubuntu 22.04: Deine Anleitung für ein stabiles Setup
NGINX als Reverse Proxy einzusetzen, ist eine beliebte und smarte Wahl. Für die Einrichtung installierst du einfach NGINX, erstellst eine Konfigurationsdatei und passt die Servereinstellungen an. Wenn du möchtest, kannst du das Ergebnis direkt mit Gunicorn überprüfen.
NGINX als Reverse Proxy unter Ubuntu 22.04: Schritt für Schritt
Ein Reverse Proxy sorgt für einen sicheren, flexiblen und effizienten Webserver. Er agiert als Vermittler zwischen Client und Webserver, ohne dass deine Besucher:innen etwas davon bemerken. NGINX ist hierfür eine exzellente Lösung. Wir zeigen dir jetzt, wie du den Reverse Proxy unter Ubuntu 22.04 installierst und konfigurierst.
Das brauchst du für die Einrichtung
Bevor du mit dem NGINX Reverse Proxy unter Ubuntu 22.04 startest, stelle sicher, dass Folgendes bereitsteht:
- Ein einsatzbereiter Ubuntu-Server
- Die IP-Adresse oder der Unix Domain Socket deines Servers
- Die Domain deines Servers
sudo-Rechte für den Serverzugriff
NGINX als Reverse Proxy installieren
Aktualisiere zuerst dein Repository über das Terminal, um die neuesten Pakete zu laden. Die Installation von NGINX erledigst du mit dem Befehl apt install. Nutze dafür diesen Code:
$ sudo apt update
$ sudo apt install nginxbashBestätige den Vorgang mit [Y] und [Enter].
Danach passt du deine Firewall an, damit NGINX mit deinem Server kommunizieren kann. Füge die Ausnahme mit diesem Befehl hinzu:
$ sudo ufw allow 'Nginx HTTP'bashPrüfe nun kurz, ob alles glatt gelaufen ist:
$ systemctl status nginxbashBei einer erfolgreichen Installation sieht die Ausgabe so aus:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-06-24 06:52:46 UTC; 39min ago
Docs: man:nginx(8)
Main PID: 9919 (nginx)
Tasks: 2 (limit: 2327)
Memory: 2.9M
CPU: 50ms
CGroup: /system.slice/nginx.service
├─9919 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
└─9920 "nginx: worker process"bashKonfigurationsdatei erstellen und Server anpassen
Jetzt geht es an den Server-Block, um den NGINX Reverse Proxy optimal auf dein System abzustimmen. Erstelle mit dem Editor nano eine neue Konfigurationsdatei. Ersetze dabei „ihre_domain“ durch deinen echten Domainnamen:
$ sudo nano /etc/nginx/sites-available/ihre_domainbashFüge den folgenden Inhalt in die Datei ein. Tausche die Platzhalter „ihre_domain“ und „server_adresse“ gegen deine Domain sowie die IP oder den Unix Domain Socket deines Servers aus:
server {
listen 80;
listen [::]:80;
server_name ihre_domain www.ihre_domain;
location / {
proxy_pass http://server_adresse;
include /etc/nginx/proxy_params;
}
}txtSpeichere und schließe die Datei. Das ist das Standard-Setup von NGINX, das Port 80 für Anfragen nutzt. Die Komponente proxy_pass ist dabei das Herzstück für die Reverse-Proxy-Funktion. Du kannst bei Bedarf jederzeit weitere Server ergänzen.
Verknüpfe die Datei nun mit dem Verzeichnis sites-enabled, damit NGINX darauf zugreifen kann. Nutze diesen Befehl (Platzhalter wieder anpassen):
$ sudo ln -s /etc/nginx/sites-available/ihre_domain/etc/nginx/sites-enabled/bashChecke deine Konfiguration auf eventuelle Fehler:
$ sudo nginx -tbashLäuft alles fehlerfrei? Dann starte den NGINX Reverse Proxy neu, um die Änderungen zu aktivieren:
$ sudo systemctl restart nginxbashDamit steht dein Reverse Proxy. Im nächsten Teil zeigen wir dir, wie du die Funktion testest – dieser Schritt ist optional.
NGINX Reverse Proxy mit Gunicorn testen
Um die Funktion zu prüfen, kannst du direkt deinen Server nutzen oder auf den kompakten HTTP-Webserver Gunicorn setzen. Dieser harmoniert perfekt mit NGINX. Installiere ihn nach einem Paket-Update so:
$ sudo apt update
$ sudo apt install gunicornbashErstelle nun eine simple Test-Funktion für die HTTP-Antwort in deinem Browser via nano:
$ nano test.pybashFüge diesen Code in die Datei ein:
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"Dies ist ein Test"])txtNach dem Speichern und Schließen startest du Gunicorn und das Testmodul:
$ gunicorn --worker=2 test:appbashDie Bestätigung im Terminal sieht etwa so aus:
[2024-06-24 07:09:29 +0000] [10568] [INFO] Starting gunicorn 20.1.0
[2024-06-24 09:14:37 +0000] [10568] [INFO] Listening at: http://127.0.0.1 (10568)
[2024-06-24 09:14:37 +0000] [10568] [INFO] Using worker: sync
[2024-06-24 09:14:37 +0000] [10569] [INFO] Booting worker with pid: 10569
[2024-06-24 09:14:37 +0000] [10570] [INFO] Booting worker with pid: 10570bashDas zeigt, dass Gunicorn unter der Adresse http://127.0.0.1:8000 aktiv ist. Öffne nun deinen Browser und steuere deine konfigurierte Domain an. Dein NGINX Reverse Proxy sollte dich nun mit „Dies ist ein Test“ begrüßen.