NGINX mit Reverse Proxy ⋆ ALexHost SRL

Testen Sie Ihre Fähigkeiten mit unseren Hosting-Diensten und erhalten Sie 15% Rabatt!

Code an der Kasse verwenden:

Skills
18.12.2024
No categories

NGINX mit Reverse Proxy

Einführung in NGINX und Reverse Proxy

NGINX ist ein leistungsstarker HTTP-Server, Reverse-Proxy-Server und eine Open-Source-Software, die von vielen Websites auf der ganzen Welt genutzt wird. Seine Vielseitigkeit und Geschwindigkeit haben ihn zu einer beliebten Wahl für Webhosting, Lastausgleich, Caching und Reverse Proxy gemacht. Ein Reverse Proxy ist ein leistungsfähiges Werkzeug, das vor einem Webserver sitzt und Client-Anfragen an die entsprechenden Backend-Server weiterleitet. Dieser Artikel befasst sich mit den Grundlagen von NGINX mit Reverse Proxy und wie man es effektiv konfiguriert.

Was ist ein Reverse-Proxy?

Ein Reverse-Proxy fungiert als Vermittler zwischen Clients und Backend-Servern. Im Gegensatz zu einem regulären Proxy, der von Clients verwendet wird, um anonym auf Ressourcen zuzugreifen, ist ein Reverse-Proxy auf der Serverseite positioniert, bearbeitet Anfragen von Clients und leitet sie an die entsprechenden Backend-Server weiter. Zu den wichtigsten Vorteilen der Verwendung eines Reverse-Proxys gehören

  • Lastausgleich: Verteilung der Client-Anfragen auf mehrere Server, wodurch eine Überlastung eines einzelnen Servers verhindert und die Gesamtleistung verbessert wird.
  • Sicherheit und Anonymität: Verbergen der IP-Adressen von Backend-Servern, um sie vor dem direkten Zugriff durch das Internet zu schützen.
  • Caching: Zwischenspeicherung statischer Inhalte, um die Bereitstellung häufig angeforderter Ressourcen zu beschleunigen.
  • SSL-Terminierung: Verlagerung der SSL/TLS-Verschlüsselung und -Entschlüsselung auf den Reverse Proxy, wodurch die Verarbeitungslast auf den Backend-Servern verringert wird.

Warum NGINX als Reverse Proxy verwenden?

Das schlanke Design und die blockierungsfreie Architektur von NGINX machen es zu einer hervorragenden Wahl für einen Reverse-Proxy. Er kann eine große Anzahl gleichzeitiger Verbindungen bei geringem Ressourcenverbrauch bewältigen und eignet sich daher ideal für Websites, die stark frequentiert sind oder eine hohe Verfügbarkeit aufweisen müssen. Einige Vorteile der Verwendung von NGINX als Reverse-Proxy sind:

  • Hohe Leistung: NGINX ist darauf ausgelegt, eine große Anzahl von Verbindungen effizient zu verarbeiten und eignet sich daher perfekt für Umgebungen, die schnelle Anfrage-Antwort-Zeiten erfordern.
  • Flexibel: NGINX ermöglicht die einfache Konfiguration mehrerer Backend-Server, wodurch komplexe Lastausgleichs- und Failover-Konfigurationen möglich sind.
  • Skalierbarkeit: Wenn der Datenverkehr zunimmt, können Sie weitere Backend-Server hinzufügen und die Last ohne Unterbrechungen ausgleichen.
  • Sicherheitsfunktionen: NGINX kann HTTPS-Verbindungen erzwingen, bestimmte IP-Adressen blockieren und die Authentifizierung verwalten.

So richten Sie NGINX als Reverse-Proxy ein

Bei der Einrichtung von NGINX als Reverse-Proxy wird NGINX so konfiguriert, dass es auf eingehende HTTP- oder HTTPS-Anfragen wartet und diese an einen oder mehrere Backend-Server weiterleitet. Hier finden Sie eine Schritt-für-Schritt-Anleitung für die ersten Schritte:

Schritt 1: NGINX installieren

Wenn Sie NGINX noch nicht auf Ihrem Server installiert haben, installieren Sie es zunächst. Für die meisten Linux-Distributionen können Sie den folgenden Befehl verwenden:

# Für Debian/Ubuntu
sudo apt update
sudo apt install nginx
# Für CentOS/RHEL
sudo yum install epel-release
sudo yum install nginx

Nach der Installation starten Sie den NGINX-Dienst:

sudo systemctl start nginx

Schritt 2: Grundlegende NGINX-Reverse-Proxy-Konfiguration

Um einen einfachen Reverse-Proxy einzurichten, müssen Sie die NGINX-Konfigurationsdatei bearbeiten, die sich normalerweise unter /etc/nginx/nginx.conf befindet, oder eine neue Konfigurationsdatei in /etc/nginx/conf.d/ erstellen. Nachfolgend finden Sie eine einfache Konfiguration für das Reverse-Proxying von Anfragen an einen Backend-Server:

server {
listen 80;
server_name example.com;
standort / {
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

  • listen 80;: Weist NGINX an, auf HTTP-Anfragen an Port 80 zu warten.
  • server_name: Ersetzen Sie example.com durch Ihre Domäne oder IP-Adresse.
  • proxy_pass: Gibt die Adresse des Backend-Servers an, an den die Anfragen weitergeleitet werden sollen.
  • proxy_set_header: Legt zusätzliche Header fest, die an das Backend weitergegeben werden, was für die Protokollierung und Sicherheit nützlich sein kann.

Schritt 3: Reverse Proxy für mehrere Backend-Server

Um einen Lastausgleich zwischen mehreren Backend-Servern einzurichten, können Sie einen Upstream-Block definieren:

upstream backend {
server backend1.example.com;
server backend2.beispiel.com;
server backend3.beispiel.com;
}
server {
listen 80;
server_name example.com;
standort / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Bei dieser Konfiguration werden die Anfragen auf backend1.example.com, backend2.example.com und backend3.example.com in einem Round-Robin-Verfahren verteilt.

Schritt 4: Aktivieren von SSL für sichere Verbindungen

Um die Kommunikation zwischen Clients und dem NGINX-Reverse-Proxy zu sichern, können Sie SSL/TLS aktivieren. Dazu benötigen Sie ein SSL-Zertifikat, das Sie von Anbietern wie Let’s Encrypt beziehen können:

server {
listen 443 ssl;
server_name example.com;
ssl_certificate /pfad/zu/ssl_certificate.crt;
ssl_certificate_key /pfad/zu/ssl_certificate_key.key;
standort / {
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Stellen Sie sicher, dass Sie die Pfade zu Ihrem SSL-Zertifikat und -Schlüssel ersetzen. Mit dieser Einrichtung beendet NGINX die SSL-Verbindung und leitet den Datenverkehr über HTTP an den Backend-Server weiter.

Schritt 5: Testen und Neustart von NGINX

Nachdem Sie Änderungen an der NGINX-Konfiguration vorgenommen haben, ist es wichtig, die Konfiguration auf etwaige Syntaxfehler zu testen:

sudo nginx -t

Wenn keine Fehler gemeldet werden, starten Sie NGINX neu, um die Änderungen zu übernehmen:

sudo systemctl restart nginx

Erweiterte NGINX-Reverse-Proxy-Konfiguration

Für erweiterte Konfigurationen können Sie Caching, URL-Rewriting und benutzerdefinierte Lastausgleichsalgorithmen konfigurieren. Hier sind ein paar zusätzliche Optionen:

  • Caching: Um das Caching zu aktivieren, fügen Sie proxy_cache-Direktiven in Ihren Standortblock ein.
  • Benutzerdefinierter Lastausgleich: Verwenden Sie verschiedene Lastausgleichsstrategien wie least_conn zur Verteilung des Datenverkehrs auf den Backend-Server mit den wenigsten aktiven Verbindungen.
  • Gesundheitsprüfungen: Konfigurieren Sie Gesundheitsprüfungen, um sicherzustellen, dass NGINX den Datenverkehr mit proxy_next_upstream nur an gesunde Backend-Server weiterleitet .

Fazit

Die Verwendung von NGINX als Reverse-Proxy ist eine leistungsstarke Methode zur Verwaltung des Datenverkehrs und zur Verbesserung der Skalierbarkeit, Leistung und Sicherheit Ihrer Webanwendungen. Durch die Einrichtung von NGINX zur Verarbeitung von Anfragen und deren Verteilung auf Backend-Server können Sie eine hochverfügbare und effiziente Infrastruktur schaffen. Ganz gleich, ob Sie eine kleine Website oder eine umfangreiche Anwendung hosten, NGINX mit Reverse-Proxy-Funktionen kann eine wichtige Komponente Ihrer Architektur sein.

Mit diesem Leitfaden sollten Sie gut gerüstet sein, um NGINX als Reverse-Proxy für Ihre Bedürfnisse zu konfigurieren und zu optimieren.

Testen Sie Ihre Fähigkeiten mit unseren Hosting-Diensten und erhalten Sie 15% Rabatt!

Code an der Kasse verwenden:

Skills