# 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](https://www.ionos.com/de-ch/digitalguide/server/knowhow/was-ist-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

### 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:

```bash
$ sudo apt update
$ sudo apt install nginx
```

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:

```bash
$ sudo ufw allow 'Nginx HTTP'
```

Überprüfen Sie abschließend, ob die Installation von NGINX erfolgreich war. Dies ist der passende Command:

```bash
$ systemctl status nginx
```

Wurde NGINX richtig installiert, erhalten Sie eine Ausgabe wie diese:

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

### 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:

```bash
$ sudo nano /etc/nginx/sites-available/ihre_domain
```

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:

```txt
server {
    listen 80;
    listen [::]:80;
    server_name ihre_domain www.ihre_domain;
        
    location / {
        proxy_pass http://server_adresse;
        include /etc/nginx/proxy_params;
    }
}
```

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“:

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

Überprüfen Sie Ihre Konfiguration auf Fehler:

```bash
$ sudo nginx -t
```

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:

```bash
$ sudo systemctl restart nginx
```

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:

```bash
$ sudo apt update
$ sudo apt install gunicorn
```

Anschließend erstellen Sie eine einfache Funktion, die als HTTP-Antwort an Ihren Browser geschickt wird. Dafür nutzen Sie erneut nano:

```bash
$ nano test.py
```

Öffnen Sie die Datei und fügen Sie den folgenden Code ein:

```txt
def app(environ, start_response):
	start_response("200 OK", [])
	return iter([b"Dies ist ein Test"])
```

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

```bash
$ gunicorn --worker=2 test:app
```

Die Ausgabe sollte danach in etwa so aussehen:

```bash
[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
```

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.


This is a markdown version of: [https://www.ionos.com/de-ch/digitalguide/server/konfiguration/nginx-reverse-proxy/](https://www.ionos.com/de-ch/digitalguide/server/konfiguration/nginx-reverse-proxy/) for AI/LLM consumption.