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.

Tipp

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
Managed Nextcloud by IONOS Cloud
Teamarbeit in der eigenen Cloud
  • 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
bash

Bestä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
bash

Wurde 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"
bash

Konfigurationsdatei 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
bash

Sobald 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;
    }
}
txt

Speichern 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
bash

Sofern 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
bash

Die 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
bash

Anschließ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"])
txt

Speichern und schließen Sie die Datei im Anschluss. Danach starten Sie Gunicorn und rufen das Testmodul auf:

$ gunicorn --worker=2 test:app
bash

Die 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
bash

Dies 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.

Page top