NGINX Reverse Proxy auf Ubuntu 22.04 einrichten – so geht‘s
NGINX als Reverse Proxy einzusetzen, ist eine sehr beliebte und empfehlenswerte Option. Um die Lösung einzurichten, müssen Sie lediglich NGINX installieren, eine Konfigurationsdatei erstellen und die Servereinstellungen anpassen. Optional können Sie den Erfolg Ihrer Maßnahmen mit Gunicorn testen.
NGINX als Reverse Proxy unter Ubuntu 22.04: Schritt für Schritt
Für einen sicheren, flexiblen und ressourcenschonenden Webserver kann der Einsatz eines Reverse Proxys empfehlenswert sein. Diesen schalten Sie zwischen Client und Webserver, ohne dass Besucherinnen und Besucher den Einsatz des Anfragen-Vermittlers bemerken. Eine sehr empfehlenswerte Lösung für alle eingehenden Anfragen ist der NGINX Reverse Proxy. In den nächsten Abschnitten erklären wir Ihnen, wie Sie diesen unter Ubuntu 22.04 installieren und einrichten.
An anderer Stelle im Digital Guide finden Sie auch eine Anleitung zur Installation von NGINX unter Ubuntu 20.04. Außerdem erklären wir Ihnen hier genauer, was ein Proxy-Server ist.
Voraussetzungen für eine erfolgreiche Einrichtung
Um einen NGINX Reverse Proxy unter Ubuntu 22.04 einrichten zu können, benötigen Sie Folgendes:
- Einen fertig eingerichteten Ubuntu-Server
- Die IP-Adresse oder Unix Domain Socket des Servers
- Die Domain Ihres Servers
sudo
-Privilegien für den Server
- Vollständige Datensouveränität in deutschen Rechenzentren
- Managed Service ohne Administrationsaufwand
- File-Sharing, Dokumentenbearbeitung & Kommunikation
NGINX als Reverse Proxy installieren
Updaten Sie im ersten Schritt via Terminal Ihr Repository, um Zugriff auf die neuesten Pakete zu erhalten. NGINX installieren Sie dann mit dem Befehl apt install
. Dies ist der passende Code:
$ sudo apt update
$ sudo apt install nginx
bashBestätigen Sie mit [Y] und drücken Sie [Enter], um die Einstellungen zu übernehmen.
Im nächsten Schritt konfigurieren Sie Ihre Firewall so, dass NGINX Zugriff auf Ihren Server erhält. Dafür fügen Sie mit dem folgenden Befehl eine Ausnahme hinzu:
$ sudo ufw allow 'Nginx HTTP'
bashÜberprüfen Sie abschließend, ob die Installation von NGINX erfolgreich war. Dies ist der passende Command:
$ systemctl status nginx
bashWurde NGINX richtig installiert, erhalten Sie eine Ausgabe wie diese:
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
Anschließend konfigurieren Sie Ihren Server-Block, um den NGINX Reverse Proxy optimal für Ihr System vorzubereiten. Dafür erstellen und öffnen Sie eine neue Konfigurationsdatei mit dem Texteditor nano. Geben Sie den folgenden Befehl ein, wobei Sie den Platzhalter „ihre_domain“ durch den tatsächlichen Namen Ihrer Domain ersetzen:
$ sudo nano /etc/nginx/sites-available/ihre_domain
bashSobald die Datei geöffnet ist, fügen Sie dort den folgenden Inhalt ein. Die Platzhalter „ihre_domain“ und „server_adresse“ ersetzen Sie dabei durch die Domain und die IP oder die Unix Domain Socket Ihres Servers:
server {
listen 80;
listen [::]:80;
server_name ihre_domain www.ihre_domain;
location / {
proxy_pass http://server_adresse;
include /etc/nginx/proxy_params;
}
}
txtSpeichern und schließen Sie die Datei. Bei dem aufgezeigten Inhalt handelt es sich um das Standard-Setup von NGINX. Dabei wird der Port 80 genutzt, um auf Anfragen von Ihrer Domain und Ihrem Server zu reagieren. proxy_pass
ist die entscheidende Komponente für die Funktion von NGINX als Reverse Proxy. Bei Bedarf können Sie auch zusätzliche Server einrichten.
Im Anschluss erstellen Sie einen Link zum Verzeichnis sites-enabled
, auf das NGINX am Anfang zugreift. Dafür nutzen Sie den folgenden Befehl und ersetzen dabei erneut den Platzhalter „ihre_domain“:
$ sudo ln -s /etc/nginx/sites-available/ihre_domain/etc/nginx/sites-enabled/
bashÜberprüfen Sie Ihre Konfiguration auf Fehler:
$ sudo nginx -t
bashSofern Sie keine Fehlermeldungen erhalten, können Sie den NGINX Reverse Proxy nun neu starten, um alle Einstellungen zu übernehmen. Dafür geben Sie das folgende Kommando ein:
$ sudo systemctl restart nginx
bashDie Konfiguration von NGINX als Reverse Proxy ist damit abgeschlossen. Im folgenden Abschnitt erklären wir Ihnen, wie Sie den Proxy überprüfen können. Dieser Test ist allerdings nicht obligatorisch für die Einrichtung.
NGINX Reverse Proxy optional mit Gunicorn überprüfen
Möchten Sie Ihren NGINX Reverse Proxy testen, können Sie dafür grundsätzlich Ihren Server verwenden. Hierfür rufen Sie ihn einfach über die Shell auf. Alternativ nutzen Sie den schlanken HTTP-Webserver Gunicorn, der sich sehr gut mit dem NGINX Reverse Proxy kombinieren lässt. Updaten Sie zunächst die Pakete und installieren Sie den Server:
$ sudo apt update
$ sudo apt install gunicorn
bashAnschließend erstellen Sie eine einfache Funktion, die als HTTP-Antwort an Ihren Browser geschickt wird. Dafür nutzen Sie erneut nano:
$ nano test.py
bashÖffnen Sie die Datei und fügen Sie den folgenden Code ein:
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"Dies ist ein Test"])
txtSpeichern und schließen Sie die Datei im Anschluss. Danach starten Sie Gunicorn und rufen das Testmodul auf:
$ gunicorn --worker=2 test:app
bashDie Ausgabe sollte danach in etwa so aussehen:
[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:8000 (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: 10570
bashDies ist die Bestätigung, dass Gunicorn mit der Standardadresse http://127.0.0.1:8000
interagiert. Im letzten Schritt öffnen Sie Ihren Browser und rufen die Domain auf, die Sie mit NGINX konfiguriert haben. Der NGINX Reverse Proxy zeigt nun die Meldung „Dies ist ein Test“ an.