So richten Sie Nginx Reverse Proxy ein
- 4597
- 869
- Aileen Dylus
In dieser Anleitung erfahren Sie, wie Sie einen nginx -Reverse -Proxy mit Schritt -für -Schritt -Anweisungen einrichten. Wir werden auch erklären, wie ein Reverse -Proxy -Server funktioniert und wie seine Vorteile sind. Darüber hinaus übergehen wir verschiedene Konfigurationsoptionen, die Linux -Administratoren häufig auf ihren Reverse -Proxy -Servern anwenden.
In diesem Tutorial lernen Sie:
- Wie funktioniert ein Reverse -Proxy?
- Was sind die Vorteile eines umgekehrten Proxy?
- So richten Sie Nginx Reverse Proxy ein
- Wie man Header passt
- So konfigurieren Sie Lastausgleich
- So testen Sie die NGINX -Konfiguration
Softwareanforderungen und Konventionen verwendet
Kategorie | Anforderungen, Konventionen oder Softwareversion verwendet |
---|---|
System | Verteilungsunabhängige |
Software | Nginx |
Andere | Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl. |
Konventionen | # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können |
Wie funktioniert ein Reverse -Proxy??
Ein System, das zwischen einem Client und einem Webserver (oder Servern) liegt, kann als Reverse Proxy konfiguriert werden. Der Proxy -Service fungiert als Frontend und arbeitet mit allen eingehenden Client -Anfragen und verteilt sie an das Backend -Web, die Datenbank und/oder andere Server.
Vorteile eines umgekehrten Proxy
Das Konfigurieren eines Nginx Reverse Proxy bedeutet, dass alle eingehenden Anforderungen an einem einzigen Punkt behandelt werden, was mehrere Vorteile bietet:
- Lastverteilung - Der Reverse -Proxy verteilt eingehende Verbindungen an Backend -Server und kann dies je nach aktueller Last, unter der sich jeder Server befindet. Dies stellt sicher, dass keiner der Backend -Server mit Anfragen überlastet wird. Es verhindert auch Ausfallzeiten, da der Reverse -Proxy den Verkehr umleiten kann.
- Zentrale Protokollierung - Anstatt mehrere Server zu Protokolldateien zu generieren, kann der Reverse -Proxy alle relevanten Informationen an einem einzelnen Ort protokollieren. Dies erleichtert die Aufgabe des Administrators immens immens, da Probleme viel schneller isoliert werden können und bei Problemen keine Protokolldateien von mehreren Standorten von mehreren Standorten analysieren müssen.
- Verbesserte Sicherheit - Ein Reverse -Proxy verschleiert Informationen über die Backend -Server sowie als erste Verteidigungslinie gegen eingehende Angriffe. Da der Reverse -Proxy den Verkehr vor der Weiterleitung an das Backend herausleitet, wird nur harmloser Verkehr an die anderen Server weitergegeben.
- Bessere Leistung - Ein Reverse -Proxy -Server kann kluge Entscheidungen darüber treffen. Andere gängige Serveraufgaben wie Caching und Komprimierung können ebenfalls auf den Reverse -Proxy -Server geladen werden, wodurch die Ressourcen für die Backend -Server freigelassen werden.
Ein Reverse -Proxy -Server ist in jedem Webhosting -Szenario keine erforderliche Komponente. Die Vorteile eines umgekehrten Proxy werden unter hohen Verkehrsbedingungen oder Situationen, in denen mehrere Backend -Server bereitgestellt werden, am deutlichsten und benötigen irgendeine Form des Lastausgleichs.
Warum Nginx?
Nachdem wir nun die Vorteile eines Reverse -Proxys beschrieben haben, fragen Sie sich möglicherweise, warum Sie eine mit Nginx konfigurieren sollten. Die Skalierbarkeit von Nginx und seine nachgewiesene Fähigkeit, ein extrem hohes Volumen von Verbindungen zu bewältigen.
Eine gemeinsame Anwendung besteht darin, NGINX zwischen Clients und einem Webserver zu platzieren, wo sie als Endpunkt für die SSL -Verschlüsselung und den Webbeschleuniger dienen kann. Vorgänge, die normalerweise die Last auf einem Webserver erhöhen würden, wie z. B. Verschlüsselung, Komprimierung und Caching.
So richten Sie Schritt -für -Schritt -Anweisungen von Nginx Reverse Proxy ein
Da wir erklärt haben, wie ein Reverse -Proxy funktioniert und wie die Vorteile eine Verwendung von einem sind, werden wir in diesem Abschnitt die Schritte durchführen, die erforderlich sind, um einen Nginx -Reverse -Proxy einzurichten.
- Installieren Sie Nginxyou können NGINX mit dem Paketmanager Ihres Systems installieren. Auf Ubuntu und Debian Distributionen lautet der Befehl:
$ sudo apt-get install nginx
Bei CentOs und Red Hat -Verteilungen:
# yum install nginx installieren
- Deaktivieren Sie den standardmäßigen virtuellen Host
# UNLINK/ETC/NGINX/SITES-ELTERAFTEN/Standard
- Erstellen Sie eine Reverse-Proxy-Konfigurations-FileAll der Einstellungen für den Reverse-Proxy, der in eine Konfigurationsdatei eingeht, und diese Datei muss in dem Verzeichnis von Sites verfügbar sein. Beginnen Sie mit der Navigation zum folgenden Verzeichnis:
# CD/etc/nginx/sites-verfügbar
Verwenden Sie dann VI oder Ihren bevorzugten Texteditor, um die Konfigurationsdatei zu erstellen:
# VI Reverse-Proxy.Conf
Fügen Sie die folgende Konfigurationsvorlage in diese neu erstellte Datei ein:
KopierenServer Listen 80; Ort/path/proxy_pass http: // Beispiel.com;
Ersetzen
Beispiel.com
Mit der IP -Adresse oder dem Hostnamen des Servers, an den Sie weiterleiten. Sie können auch einen Port mit dem Hostnamen angeben, z127.0.0.1: 8080
Zum Beispiel. Speichern Sie Ihre Änderungen und beenden Sie dann den Texteditor.Beachten Sie, dass dies für HTTP -Server funktioniert, aber Nginx unterstützt auch andere Protokolle. Wir werden diese Optionen im nächsten Abschnitt abdecken.
- Aktivieren Sie das Proxy mit Ihren gespeicherten Einstellungen und aktivieren Sie das neue Konfigurieren, indem Sie einen symbolischen Link zum Websites-fähigen Verzeichnis erstellen:
# ln -S/etc/nginx/seites-verfügbare/reverse-proxy.conf/etc/nginx/sites-fähige/umgekehrte proxy.Conf
Nicht-HTTP-Server
Das obige Beispiel zeigt an Fastcgi, UWSGI, Scgi, Und memcached. Anstatt die zu verwenden Proxy_Pass
Die oben gezeigte Direktive ersetzen Sie es durch den entsprechenden Typ:
- Proxy_Pass (HTTP -Server - wie oben angezeigt)
- FASTCGI_PASS (FASTCGI -Server)
- UWSGI_Pass (UWSGI -Server)
- scgi_pass (SCGI -Server)
- memcached_pass (memcached Server)
Wie man Header passt
Um zu konfigurieren, welche Header der Reverse -Proxy -Server an die anderen Server übergeben, können wir diese in der zuvor erstellten Konfigurationsdatei definieren. Benutze die proxy_set_header
Richtlinie, um die Header anzupassen.
Sie können im Server-, Ort- oder HTTP -Block konfiguriert werden. Zum Beispiel:
location/einige/path/proxy_set_header host $ host; proxy_set_header x-forward-proto $ Schema; proxy_set_header x-real-ip $ remote_addr; proxy_pass http: // Beispiel.com;
Kopieren Das obige Beispiel definiert drei Arten von Kopfzeilen und setzt sie auf die jeweiligen Variablen. Es gibt viele andere Optionen für das Übergeben von Headern, aber dieses Beispiel zeigt drei, die sehr häufig sind.
Der Gastgeber
Der Header enthält Informationen darüber, welcher Host angefordert wird. Der X-Forwarded-Proto
Headerspezies Wenn die Anfrage HTTP oder HTTPS ist. Und das X-Real-IP
Der Header enthält die IP -Adresse des anforderenden Clients.
So konfigurieren Sie Lastausgleich
Das Lastausgleich ist eine der wichtigsten Begründungen für die Konfiguration eines Reverse -Proxy -Servers. Wir können beginnen, indem wir der zuvor erstellten Konfigurationsdatei ein paar zusätzliche Zeilen hinzufügen. Schauen Sie sich ein Beispiel an:
Upstream Backend_Servers Server Host1.Beispiel.com; Server Host2.Beispiel.com; Server Host3.Beispiel.com; server listen 80; server_name Beispiel.com; location/proxy_pass http: // Backend_Servers;
Kopieren In diesem Beispiel haben wir einen Kontext hinzugefügt, der genannt wird Backend_Servers
. Innerhalb dort wird der Hostname/die IP jedes Servers in einer separaten Zeile angegeben.
Im Proxy_Pass
Die Richtlinie, in der wir normalerweise einen Hostnamen oder eine IP -Adresse eingeben, haben wir stattdessen den Namen des oben definierten vorgelagerten Kontextes angegeben: Backend_Servers
.
Diese Konfiguration leitet eingehende Anforderungen an weiter Beispiel.com
zu den drei verschiedenen Hosts, die in unserem Upstream angegeben sind. Standardmäßig leitet Nginx diese Anfragen Round Robin weiter, was bedeutet, dass jeder Host eine Anforderung anzieht.
Konfigurieren Sie Algorithmen aus Lastausgleich
Wie bereits erwähnt, ist Round Robin der Standardalgorithmus, mit dem Nginx die Anforderungen im Upstream drehen wird. Es gibt einige andere Algorithmen, die zu bestimmten Situationen besser passen:
- kleinste_Conn - Verteilt die eingehenden Verbindungen an den Backend -Servern basierend auf ihrer aktuellen Anzahl aktiver Verbindungen. Ein Server erhält nur eine Anfrage, wenn er in diesem Moment die geringste Menge an Verbindungen hat. Dies ist besonders hilfreich bei Anwendungen, die lang anhaltende Verbindungen zum Client erfordern.
- ip_hash - Verteilt die eingehenden Verbindungen basierend auf der IP -Adresse des Clients. Dies ist hilfreich, wenn Sie eine Sitzungskonsistenz erstellen müssen.
- Hash - Verteilt die eingehenden Verbindungen basierend auf einem Hash -Schlüssel. Dies ist hilfreich bei Memcached -Wirten, insbesondere bei Hosts.
Geben Sie eine Lastausgleichsmethode oben im stromaufwärts gelegenen Kontext an, wie Sie:
Upstream Backend_Servers redel_conn; Server Host1.Beispiel.com; Server Host2.Beispiel.com; Server Host3.Beispiel.com;
Kopieren So testen Sie die NGINX -Konfiguration
Sie sollten Ihre Konfiguration immer auf Fehler testen, um die Bearbeitung zu bearbeiten .Conf
Datei und dann nginx neu starten.
# Service nginx configtest # service nginx neu starten
Abschluss
In diesem Artikel haben wir gesehen, wie Sie einen Reverse -Proxy -Server mit Nginx einrichten. Wir haben auch erfahren, wie ein Reverse -Proxy -Server funktioniert und welche Vorteile es sind, einen zu verwenden. Wir haben Lastausgleich und die verschiedenen Optionen abgedeckt, die ein Administrator benötigt, um es auf seinem eigenen umgekehrten Proxy zu konfigurieren.
Nachdem Sie die Schritte in diesem Handbuch befolgt haben, werden Sie hoffentlich eine erhebliche Leistungssteigerung in Ihrer Webumgebung feststellen und es einfacher finden, jetzt zu verwalten, da eingehende Verbindungen an einen einzigen Punkt gesendet werden.
Verwandte Linux -Tutorials:
- Manjaro Linux Kernel Header Installation
- Dinge zu installieren auf Ubuntu 20.04
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- Wie oft müssen Sie Ihren Linux -Server neu starten??
- OpenLiteSespeed als Reverse Proxy
- Mint 20: Besser als Ubuntu und Microsoft Windows?
- Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
- Hung Linux System? Wie man zur Befehlszeile entkommt und…
- Ubuntu 20.04 Leitfaden