Hier bei LinuxAPT werden wir untersuchen, wie Sie den NGINX-Webserver als Reverse-Proxy auf Ubuntu-Server 20.04 LTS konfigurieren können.
Wie funktioniert ein Reverse-Proxy?
Ein Reverse-Proxy ist ein Server, der vor einem oder mehreren Webservern platziert wird und Anfragen von Clients abfängt. Wenn die Clients versuchen, eine Verbindung zum Ursprungsserver einer Website herzustellen, werden diese Anfragen vom Reverse-Proxy-Server abgefangen. Der Proxy-Server leitet diese Anfragen an den Proxy-Server weiter und empfängt von ihm Antworten, um sie an die Clients zu senden.
Zu den Vorteilen des Reverse Proxy gehören:
- Load-Balancing.
- Globaler Serverlastenausgleich (GSLB).
- Caching von Inhalten und Webbeschleunigung für verbesserte Leistung.
- Effizientere und sicherere SSL-Verschlüsselung.
- Schutz vor DDoS-Angriffen und damit verbundenen Sicherheitsproblemen.
Voraussetzungen
- Nginx-Webserver installiert auf Ubuntu Server 20.04 LTS.
- Website konfiguriert auf Ubuntu Server 20.04 LTS.
- SSH-Verbindung zu Remote-Rechnern (Nginx und Website).
Zu diesem Zweck haben wir eine Website verwendet, die auf einem Ubuntu-Server 20.04 LTS bereitgestellt wird. Dies wird als Hauptserver fungieren, oder Sie können Proxy-Server sagen. Der Nginx-Webserver wird auf einem anderen Ubuntu-Server 20.04 LTS bereitgestellt, den wir in diesem Tutorial als Reverse-Proxy konfigurieren werden. Auf unserem lokalen Rechner haben wir Linux Mint 20.02 installiert, von wo aus wir Remote-Verbindungen herstellen mit:
- IP-Adresse der virtuellen Maschine des Nginx-Webservers:10.11.120.2
- IP-Adresse der bereitgestellten virtuellen Maschine der Website:10.11.120.3
Um zu sehen, wie Sie Nginx Server Block und Secure Nginx mit Let’s Encrypt SSL unter Rocky Linux 8 / CentOS 8 konfigurieren können, besuchen Sie:https://linuxapt.com/blog/724-configure-nginx-server-block-and-secure- nginx-mit-let-encrypt-ssl-on-rocky-linux-8-centos-8
Schritte zum Einrichten von Nginx als Reverse Proxy unter Ubuntu 20.04
1. SSH zu Nginx-Rechner
Der erste Schritt besteht darin, eine Verbindung mit dem Remote-Computer herzustellen, auf dem Nginx installiert ist. Wir werden Nginx als Reverse-Proxy auf diesem Computer konfigurieren. Führen Sie dazu den folgenden Befehl aus, indem Sie den Benutzernamen und die IP-Adresse des Computers hinzufügen, auf dem Sie Ihr Nginx bereitgestellt haben. In unserem Fall sind es nginx und 10.11.120.2:
$ ssh [email protected]
2. Deaktivieren Sie den vorkonfigurierten virtuellen Nginx-Host
Trennen Sie als Nächstes die Standardkonfiguration des virtuellen Nginx-Hosts, indem Sie den folgenden Befehl ausführen:
$ unlink /etc/nginx/sites-enabled/default
3. Erstellen Sie eine Reverse-Proxy-Konfigurationsdatei
Dann erstellen wir eine Reverse-Proxy-Konfigurationsdatei.
Wechseln Sie dazu in das Verzeichnis „sites-available“ und folgen Sie dabei dem Pfad im folgenden Befehl:
$ cd /etc/nginx/sites-available
Erstellen Sie nun eine Reverse-Proxy-Konfigurationsdatei und öffnen Sie sie mit dem Nano-Editor wie folgt:
$ sudo nano example.conf
Kopieren Sie die folgenden Zeilen und fügen Sie sie in die gerade erstellte Datei ein:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://10.11.120.3:80;
}
}
Diese Konfiguration teilt mit, dass der Nginx-Reverse-Proxy auf Port 80 lauscht und alle eingehenden Verbindungsanforderungen für example.com an Port 80 des 10.11.12.3-Servers umleitet.
4. Aktivieren Sie die Datei, indem Sie einen Symlink
erstellenHier speichern wir die Datei und aktivieren sie, indem wir einen Symlink wie diesen erstellen:
$ sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/
5. Nginx-Konfigurationsdatei testen
Es ist an der Zeit, unsere Reverse-Proxy-Konfigurationsdatei auf Fehler zu testen. Führen Sie dazu den folgenden Befehl aus:
$ sudo nginx -t
Wenn Sie die Meldung "Syntax ist ok" erhalten, bedeutet dies, dass Sie loslegen können.
6. Starten Sie Nginx neu
Der letzte Schritt besteht darin, den Nginx-Webserver neu zu starten, damit die neue Reverse-Proxy-Konfigurationsdatei, die wir gerade hinzugefügt haben, mit dem Nginx-Webserver konfiguriert wird. Führen Sie dazu den folgenden Befehl aus:
$ sudo systemctl restart nginx
Jetzt können Sie es testen, indem Sie den Webbrowser auf Ihrem Computer öffnen und die Website ausführen. Sie werden über Nginx an die Maschine 10.11.120.3 weitergeleitet.
Wenn die Website einwandfrei läuft, bedeutet dies, dass Sie Nginx Reverse Proxy erfolgreich konfiguriert haben.