GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie NGINX als Reverse Proxy ein und verwenden es

Was ist ein Reverse-Proxy?

Ein Standard-Proxy-Server arbeitet im Auftrag von Clients, häufig indem er Datenschutz bereitstellt oder Inhalte filtert. Ein Reverse-Proxy arbeitet im Auftrag eines Servers, fängt Datenverkehr ab und leitet ihn an einen separaten Server weiter.

Es gibt mehrere Gründe, warum Sie einen Reverse-Proxy installieren sollten. Einer der Hauptgründe ist der Datenschutz.

Wenn Sie mehrere Server haben, kann ein Reverse-Proxy dabei helfen, Lasten zwischen Servern auszugleichen und die Leistung zu verbessern. Da ein Reverse-Proxy einen einzigen Kontaktpunkt für Clients bietet, kann er die Protokollierung und Berichterstellung auf mehreren Servern zentralisieren.

Nginx kann die Leistung verbessern, indem statische Inhalte schnell bereitgestellt und dynamische Inhaltsanfragen an Apache-Server weitergeleitet werden.

Diese Anleitung hilft Ihnen bei der Installation und Konfiguration eines Nginx-Reverse-Proxys auf Ihrem System.

Voraussetzungen

  • Ein Linux-Server mit Apache, PHP und einer Firewall
  • Zugriff auf einen Root-Benutzer mit sudo zugreifen
  • Linux-Befehlszeile oder -Terminal (StrgAltT für Ubuntu AltF2 für CentOS)
  • Paketmanager (wie APT)

Einrichten eines Nginx-Reverse-Proxys

Schritt 1:Installieren Sie Nginx aus den Standard-Repositories

Öffnen Sie ein Terminalfenster und geben Sie Folgendes ein:

sudo apt-get update

Warten Sie, bis der Paketmanager die Aktualisierung der Softwarelisten abgeschlossen hat, und geben Sie dann Folgendes ein:

sudo apt-get install nginx

Warten Sie, bis der Vorgang abgeschlossen ist.

Schritt 2 (optional):Installieren Sie Nginx aus dem offiziellen Repository

Sicherheitsschlüssel hinzufügen

Geben Sie in einem Terminalfenster Folgendes ein:

sudo wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

Dadurch wird der Signaturschlüssel für Nginx heruntergeladen, der bestätigt, dass Sie authentische Software herunterladen.

Öffnen Sie sources.list Datei zum Bearbeiten

Geben Sie im Terminal Folgendes ein:

sudo vi /etc/apt/sources.list

Nginx-Quellen zur Repository-Liste hinzufügen

Geben Sie die folgenden Zeilen in die /etc/apt/sources.list ein gerade geöffnete Datei:

deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx

deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx

Ersetzen Sie <CODENAME> mit dem Codenamen für Ihre Debian-Distribution.

Speichern die Datei und beenden .

Neueste Version von Nginx installieren

Verwenden Sie die folgenden Befehle, um die neueste Version von Nginx zu installieren:

sudo apt-get remove nginx-common
sudo apt-get update
sudo apt-get install nginx

Schritt 3:Nginx starten und konfigurieren, um beim Neustart zu starten

So starten Sie Nginx:

sudo systemctl start nginx

So aktivieren Sie Nginx:

sudo systemctl enable nginx

So überprüfen Sie, ob Nginx ausgeführt wird:

sudo systemctl status nginx

Die Ausgabe sollte Ihnen zeigen, dass der Dienst aktiv (läuft) ist , wie im Bild unten:

Schritt 4:Verknüpfung mit Standardkonfigurationsdatei aufheben

Geben Sie im Terminal Folgendes ein:

sudo unlink /etc/nginx/sites-enabled/default

Schritt 5:Neue Konfigurationsdatei erstellen

Um eine neue Konfigurationsdatei zu erstellen, geben Sie ein:

cd /etc/nginx/sites-available/
sudo vi custom_server.conf

Ersetzen Sie custom_server mit einem für Sie aussagekräftigen Namen. Geben Sie in der neuen Datei Folgendes ein:

server {

listen 80;

location / {

proxy_pass http://my_server;

}

}

Dies ist ein sehr einfaches Nginx-Reverse-Proxy-Beispiel. Nginx ist so eingestellt, dass es den gesamten Datenverkehr auf Port 80 überwacht.

Der proxy_pass Der Befehl leitet den gesamten Datenverkehr auf Port 80 an http://my_server weiter . Ändern Sie einfach http://my_server an den Ort Ihrer Wahl, und Nginx fängt Client-Anfragen ab und leitet sie an den von Ihnen angegebenen Ort weiter. Wenn Sie fertig sind, speichern Sie die Datei und beenden Sie.

Schritt 6:Konfigurationsdatei verknüpfen und aktivieren

Um die neue Nginx-Datei zu aktivieren, geben Sie Folgendes ein:

ln -s /etc/nginx/sites-available/custom_server.conf 
/etc/nginx/sites-enabled/custom_server.conf

Ersetzen Sie wie gewohnt custom_server durch den Namen der Konfigurationsdatei, die Sie in Schritt 5 erstellt haben.

Schritt 7:Nginx testen und neu starten

So testen Sie Nginx:

sudo service nginx configtest

So starten Sie Nginx neu:

sudo service nginx restart

Optionale Nginx-Konfigurationsoptionen

Proxy-Puffer

Standardmäßig puffert Nginx den Datenverkehr für Server, für die es als Proxy fungiert. Puffer verbessern die Serverleistung, da eine Serverantwort erst gesendet wird, wenn der Client eine vollständige Antwort gesendet hat.

Um den Puffer zu deaktivieren, öffnen Sie die Konfigurationsdatei aus Schritt 5. Unter location/section , fügen Sie Folgendes hinzu:

proxy_buffering off;

Anfrage-Header

Header liefern dem Server Informationen über die getätigten Anfragen oder über den Client.

Nginx definiert zwei der Header-Felder neu:host ist für $proxy_host konfiguriert , und connection ist für close konfiguriert . Wenn Sie diese Header verwenden, stellen Sie sicher, dass Sie das Verhalten in der Konfigurationsdatei ändern.

Wenn Header-Strings leer sind, entfernt Nginx diese Felder einfach.

Um die Art und Weise zu ändern, wie Nginx Heather behandelt, verwenden Sie die folgenden Befehle in Ihrer Konfigurationsdatei:

location / {

proxy_set_header Host $host;

}

Dieses Beispiel weist Nginx an, host festzulegen zum $host Variable.

Um zu verhindern, dass ein Header-Feld an den Proxy-Server weitergegeben wird, verwenden Sie eine leere Zeichenfolge wie folgt:

location / {

proxy_set_header header-variable "";

}

Lastenausgleich

Sie können die Konfigurationsdatei verwenden, um Datenverkehr an mehrere Server weiterzuleiten. Um diese Konfiguration zu verwenden, sieht Ihre Konfigurationsdatei ähnlich wie in diesem Beispiel aus:

http   {

server   {

proxy_pass http://my_server

}

}

Mit anderen Worten, die HTTP-Konfiguration geht über die Serverkonfiguration aus Schritt 5 hinaus.

Um einen Namen für eine Gruppe von Servern zu erstellen, verwenden Sie den upstream Befehl:

http   {

upstream server_group   {

server my.server1.com weight=3;

server my.server2.com;

}

server  {

location / {

proxy_pass http://server_group;

}

}

}

Diese Bezeichnung benötigt zwei Server – my.server1.com und my.server2.com – und bündelt sie. Nginx vertritt diese Gruppe von Servern unter dem Namen http://server_group . Sie können sie beliebig umbenennen.

Dieses Beispiel verwendet das weight Befehl, um drei Anfragen an my.server1.com weiterzuleiten , dann 1 Anfrage an my.server2.com . Dies ist eine Option zum manuellen Ausgleichen der Clientlast zwischen den Servern. Eine andere Methode besteht darin, einfach jede Bezeichnung wegzulassen, in der Nginx die Anfragen gleichmäßig auf die aufgelisteten Server verteilt.


Ubuntu
  1. So konfigurieren Sie Nginx Reverse Proxy für Kibana

  2. So richten Sie einen Nginx-Reverse-Proxy ein

  3. So richten Sie Nginx als Reverse Proxy unter Ubuntu 20.04 ein

  4. Nginx als Reverse Proxy auf Ubuntu 20.04 einrichten – Schritt-für-Schritt-Anleitung?

  5. Wie richte ich curl ein, um dauerhaft einen Proxy zu verwenden?

So richten Sie Nginx als Reverse Proxy für Apache unter Debian 11 ein

So richten Sie Nginx Reverse Proxy ein

Wie richte ich einen Apt-Cacher-Server ein?

Wie konfiguriere ich den Nginx-Reverse-Proxy auf Plesk?

Verwendung von Nginx Reverse Proxy (cPanel/WHM-Server)

So richten Sie Tomcat mit Nginx als Reverse Proxy unter Ubuntu 18.04 ein