Diese Schritt-für-Schritt-Anleitung zeigt Ihnen, wie Sie mit Nginx ganz einfach einen Reverse-Proxy einrichten können, um die Sicherheit und Leistung zu verbessern.
Eines der derzeit beliebtesten Reverse-Proxy-Tools ist Nginx. Obwohl Nginx selbst ein Webserver ist, leistet es hervorragende Arbeit als Reverse-Proxy.
Was ist ein Reverse-Proxy?
Ein Reverse-Proxy ist ein Server, der zwischen internen Anwendungen und externen Clients sitzt und Client-Anfragen an den entsprechenden Server weiterleitet.
Der Reverse-Proxy-Dienst fungiert als Front-End, verarbeitet alle eingehenden Client-Anforderungen und verteilt sie an das Back-End-Web, die Datenbank oder andere Server.
Die Verwendung von Nginx als Reverse-Proxy bietet Ihnen mehrere zusätzliche Vorteile:
- Load-Balancing – Nginx kann einen Lastenausgleich durchführen, um Client-Anfragen auf Proxy-Server zu verteilen und so die Leistung, Skalierbarkeit und Zuverlässigkeit zu verbessern.
- Verbesserte Sicherheit – Mit einem Reverse-Proxy haben Clients keine Informationen über unsere Backend-Server, sodass böswillige Clients auf keinen Fall direkt auf sie zugreifen können, um Schwachstellen auszunutzen. Aus Kundensicht sieht es so aus, als käme alles aus einer Hand.
- Bessere Leistung – Mit Nginx als Reverse-Proxy können Sie die vorgerenderten Versionen von Seiten zwischenspeichern, um die Ladezeiten der Seiten zu verkürzen. Es funktioniert, indem es die von den Antworten der Proxy-Server empfangenen Inhalte zwischenspeichert und verwendet, um Clients zu antworten, ohne den Proxy-Server jedes Mal wegen derselben Inhalte zu kontaktieren.
- SSL-Beendigung – Nginx kann als SSL-Endpunkt für Verbindungen mit den Clients fungieren. Es verarbeitet und entschlüsselt eingehende SSL-Verbindungen und verschlüsselt die Antworten des Proxy-Servers.
Wie man einen Reverse-Proxy mit Nginx einrichtet
1. Installieren von Nginx
Nginx ist die beliebteste Webserver-Suite, die im Internet bereitgestellt wird. Er kann als Reverse-Proxy-Server fungieren, indem er Webverkehr an bestimmte Server weiterleitet.
Lassen Sie mich Ihnen zeigen, wie Sie Nginx auf verschiedenen Linux-Distributionen installieren.
Führen Sie die folgenden Befehle aus, um Nginx unter Debian, Ubuntu, Linux Mint, Kali und anderen Debian- oder Ubuntu-Derivaten zu installieren:
sudo apt update
sudo apt install nginx
Führen Sie unter Fedora, CentOS, Red Hat und anderen Fedora- oder Red Hat-Derivaten die folgenden Befehle aus:
sudo dnf upgrade
sudo dnf install nginx
Um Nginx unter Arch Linux, Manjaro und anderen Arch-Derivaten zu installieren, führen Sie die folgenden Befehle aus:
sudo pacman -Syu
sudo pacman -S nginx
Nach Abschluss der Installation können Sie überprüfen, ob Nginx korrekt installiert ist, indem Sie die Softwareversion überprüfen. Geben Sie Folgendes ein:
nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
2. Konfigurieren von Nginx
Wir haben die primäre Website unter example.com
installiert Domänenname auf demselben Server, auf dem unser Nginx ausgeführt wird. Unsere WordPress-Blog-Site ist jedoch unter blog.example.com
installiert Subdomain auf einem anderen Server mit der IP-Adresse 127.0.1.10
.
Wir müssen einen Reverse-Proxy mit Nginx konfigurieren, um Anfragen für blog.example.com
weiterzuleiten Subdomain, damit alle Anfragen an 127.0.1.10
weitergeleitet werden . Befolgen Sie dazu die nachstehenden Schritte.
1. Deaktivieren Sie den standardmäßig vorkonfigurierten virtuellen Nginx-Host:
unlink /etc/nginx/sites-enabled/default
2. Geben Sie das Verzeichnis /etc/nginx/sites-available
ein und erstellen Sie eine Reverse-Proxy-Konfigurationsdatei.
cd /etc/nginx/sites-available
sudo vim example.conf
Fügen Sie die folgende Nginx-Konfiguration ein.
server {
listen 80;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
server {
listen 80;
server_name blog.example.com;
location / {
proxy_pass http://127.0.1.10:80;
}
}
Wie Sie sehen, könnten Sie example.com
weiterhin ausführen auf derselben Nginx-Instanz, aber Nginx leitet alle eingehenden Verbindungen für blog.example.com
um auf Port 80
zum 127.0.1.10
Server, der auf Port 80
lauscht .
3. Speichern Sie die Datei und aktivieren Sie sie dann, indem Sie einen Symlink erstellen:
sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/
4. Testen Sie Nginx auf Konfigurationsfehler:
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
5. Wenn keine Fehler vorliegen, starten Sie Nginx neu, damit die Änderungen wirksam werden:
sudo systemctl restart nginx
Starten Sie einen Webbrowser und gehen Sie zu Ihrer WordPress-Blog-URL. Sie werden über Nginx an 127.0.1.10
weitergeleitet , Hosting Ihres WordPress-Blogs.
Herzlichen Glückwunsch, Sie haben Nginx erfolgreich als Reverse-Proxy eingerichtet. Jetzt können Sie Datenverkehr, der zum Zielserver gehen soll, zum Reverse-Proxy-Server leiten, der am richtigen Ziel landet.
Weitere Informationen zu allen Reverse-Proxy-Anweisungen finden Sie im detaillierten Verzeichnis der Anweisungen von Nginx.
Schlussfolgerung
Jetzt wissen Sie, wie Sie mit Nginx einen Reverse-Proxy einrichten. Wie Sie sehen können, ist die Nginx-Reverse-Proxy-Konfiguration ein einfacher Prozess. Aber natürlich gibt es viele Möglichkeiten, es zu installieren und zu konfigurieren, die ganz von Ihren Anforderungen abhängen.