NGINX als Reverse Proxy ein­zu­set­zen, ist eine sehr beliebte und emp­feh­lens­wer­te Option. Um die Lösung ein­zu­rich­ten, müssen Sie lediglich NGINX in­stal­lie­ren, eine Kon­fi­gu­ra­ti­ons­da­tei erstellen und die Ser­ver­ein­stel­lun­gen 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 res­sour­cen­scho­nen­den Webserver kann der Einsatz eines Reverse Proxys emp­feh­lens­wert sein. Diesen schalten Sie zwischen Client und Webserver, ohne dass Be­su­che­rin­nen und Besucher den Einsatz des Anfragen-Ver­mitt­lers bemerken. Eine sehr emp­feh­lens­wer­te Lösung für alle ein­ge­hen­den Anfragen ist der NGINX Reverse Proxy. In den nächsten Ab­schnit­ten erklären wir Ihnen, wie Sie diesen unter Ubuntu 22.04 in­stal­lie­ren und ein­rich­ten.

Tipp

An anderer Stelle im Digital Guide finden Sie auch eine Anleitung zur In­stal­la­ti­on von NGINX unter Ubuntu 20.04. Außerdem erklären wir Ihnen hier genauer, was ein Proxy-Server ist.

Vor­aus­set­zun­gen für eine er­folg­rei­che Ein­rich­tung

Um einen NGINX Reverse Proxy unter Ubuntu 22.04 ein­rich­ten zu können, benötigen Sie Folgendes:

  • Einen fertig ein­ge­rich­te­ten Ubuntu-Server
  • Die IP-Adresse oder Unix Domain Socket des Servers
  • Die Domain Ihres Servers
  • sudo-Pri­vi­le­gi­en für den Server
Managed Nextcloud by IONOS Cloud
Team­ar­beit in der eigenen Cloud
  • Voll­stän­di­ge Da­ten­sou­ve­rä­ni­tät in deutschen Re­chen­zen­tren
  • Managed Service ohne Ad­mi­nis­tra­ti­ons­auf­wand
  • File-Sharing, Do­ku­men­ten­be­ar­bei­tung & Kom­mu­ni­ka­ti­on

NGINX als Reverse Proxy in­stal­lie­ren

Updaten Sie im ersten Schritt via Terminal Ihr Re­po­si­to­ry, um Zugriff auf die neuesten Pakete zu erhalten. NGINX in­stal­lie­ren Sie dann mit dem Befehl apt install. Dies ist der passende Code:

$ sudo apt update
$ sudo apt install nginx
bash

Be­stä­ti­gen Sie mit [Y] und drücken Sie [Enter], um die Ein­stel­lun­gen zu über­neh­men.

Im nächsten Schritt kon­fi­gu­rie­ren 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

Über­prü­fen Sie ab­schlie­ßend, ob die In­stal­la­ti­on von NGINX er­folg­reich war. Dies ist der passende Command:

$ systemctl status nginx
bash

Wurde NGINX richtig in­stal­liert, 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

Kon­fi­gu­ra­ti­ons­da­tei erstellen und Server anpassen

An­schlie­ßend kon­fi­gu­rie­ren Sie Ihren Server-Block, um den NGINX Reverse Proxy optimal für Ihr System vor­zu­be­rei­ten. Dafür erstellen und öffnen Sie eine neue Kon­fi­gu­ra­ti­ons­da­tei mit dem Text­edi­tor nano. Geben Sie den folgenden Befehl ein, wobei Sie den Platz­hal­ter „ihre_domain“ durch den tat­säch­li­chen 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 Platz­hal­ter „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 auf­ge­zeig­ten 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 ent­schei­den­de Kom­po­nen­te für die Funktion von NGINX als Reverse Proxy. Bei Bedarf können Sie auch zu­sätz­li­che Server ein­rich­ten.

Im Anschluss erstellen Sie einen Link zum Ver­zeich­nis sites-enabled, auf das NGINX am Anfang zugreift. Dafür nutzen Sie den folgenden Befehl und ersetzen dabei erneut den Platz­hal­ter „ihre_domain“:

$ sudo ln -s /etc/nginx/sites-available/ihre_domain/etc/nginx/sites-enabled/
bash

Über­prü­fen Sie Ihre Kon­fi­gu­ra­ti­on auf Fehler:

$ sudo nginx -t
bash

Sofern Sie keine Feh­ler­mel­dun­gen erhalten, können Sie den NGINX Reverse Proxy nun neu starten, um alle Ein­stel­lun­gen zu über­neh­men. Dafür geben Sie das folgende Kommando ein:

$ sudo systemctl restart nginx
bash

Die Kon­fi­gu­ra­ti­on von NGINX als Reverse Proxy ist damit ab­ge­schlos­sen. Im folgenden Abschnitt erklären wir Ihnen, wie Sie den Proxy über­prü­fen können. Dieser Test ist al­ler­dings nicht ob­li­ga­to­risch für die Ein­rich­tung.

NGINX Reverse Proxy optional mit Gunicorn über­prü­fen

Möchten Sie Ihren NGINX Reverse Proxy testen, können Sie dafür grund­sätz­lich Ihren Server verwenden. Hierfür rufen Sie ihn einfach über die Shell auf. Al­ter­na­tiv nutzen Sie den schlanken HTTP-Webserver Gunicorn, der sich sehr gut mit dem NGINX Reverse Proxy kom­bi­nie­ren lässt. Updaten Sie zunächst die Pakete und in­stal­lie­ren Sie den Server:

$ sudo apt update
$ sudo apt install gunicorn
bash

An­schlie­ß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 (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 Be­stä­ti­gung, dass Gunicorn mit der Stan­dard­adres­se http://127.0.0.1:8000 in­ter­agiert. Im letzten Schritt öffnen Sie Ihren Browser und rufen die Domain auf, die Sie mit NGINX kon­fi­gu­riert haben. Der NGINX Reverse Proxy zeigt nun die Meldung „Dies ist ein Test“ an.

Zum Hauptmenü