Der Nginx-Reverse-Proxy legt den Domänennamen fest und implementiert die Weiterleitung auf elegante Weise.
Übersicht
In der Webentwicklung stoßen wir häufig auf Situationen, in denen ein Proxy zum Weiterleiten von Anforderungen erforderlich ist. Als Hochleistungs-Webserver kann Nginx Anforderungen über einen Reverse-Proxy weiterleiten und so einen effizienten Lastausgleich und eine dynamische Konfiguration erreichen.
Das Grundprinzip des Nginx-Reverse-Proxy besteht darin, die Anfrage vom Client an den Nginx-Server zu senden, und der Nginx-Server leitet die Anfrage dann an den Back-End-Server weiter, der die Anfrage tatsächlich verarbeitet. Durch Festlegen des Domänennamens können wir unterschiedliche Proxy-Weiterleitungsregeln für Anfragen von unterschiedlichen Domänennamen implementieren.
Legen Sie den Domänennamen fest
Um die Proxy-Weiterleitung des Domänennamens zu implementieren, müssen Sie zunächst die Auflösung des Domänennamens konfigurieren. Angenommen, wir haben zwei Domänennamen, die weitergeleitet werden müssen, nämlich www.example1.com und www.example2.com. Wir können diese beiden Domänennamen in der Konsole des DNS-Dienstanbieters in die IP-Adresse des Nginx-Servers auflösen.
Als nächstes müssen wir die Proxy-Weiterleitungsregeln für den Domänennamen in der Nginx-Konfigurationsdatei festlegen. Öffnen Sie die Nginx-Konfigurationsdatei, die sich normalerweise unter /etc/nginx/nginx.conf befindet, suchen Sie den Serverblock und konfigurieren Sie dann den entsprechenden Domänennamen und die Weiterleitungsregeln im Serverblock.
Der Beispielcode lautet wie folgt:
server { listen 80; server_name www.example1.com; location / { proxy_pass http://backend1; proxy_set_header Host $host; } } server { listen 80; server_name www.example2.com; location / { proxy_pass http://backend2; proxy_set_header Host $host; } }
Im obigen Code definieren wir zunächst einen Serverblock, stellen den Befehl „listen“ so ein, dass er Port 80 überwacht, und der Befehl „server_name“ setzt den Domänennamen auf www.example1.com. Die Konfigurationsanweisung „proxy_pass“ im Standortblock gibt an, dass das Weiterleitungsziel der Anfrage http://backend1 ist. Die Proxy_set_header-Direktive setzt das Host-Feld des Anforderungsheaders auf $host, um die Authentizität der Anforderung aufrechtzuerhalten.
In ähnlicher Weise fügen wir einen weiteren Serverblock hinzu, setzen server_name auf www.example2.com und Proxy_pass auf http://backend2.
Konfigurieren des Weiterleitungsziels
In der obigen Konfiguration haben wir Backend1 und Backend2 als Weiterleitungsziele verwendet. Diese beiden Ziele beziehen sich auf die Adresse des Backend-Servers, bei der es sich um einen Domänennamen, eine IP-Adresse oder einen UNIX-Domänen-Socket handeln kann.
Um diese beiden Weiterleitungsziele mit dem Backend-Server zu verknüpfen, der die Anfrage tatsächlich verarbeitet, müssen wir einen Upstream-Block innerhalb des http-Blocks der Nginx-Konfigurationsdatei hinzufügen. Der Beispielcode lautet wie folgt:
http { upstream backend1 { server backend1.example.com; } upstream backend2 { server backend2.example.com; } }
Im obigen Code haben wir Zwei Upstream-Blöcke werden definiert, um die Adresse des Backend-Servers über die Serveranweisung mit Backend1 und Backend2 zu verknüpfen. Darunter sind backend1.example.com und backend2.example.com die Adressen der Backend-Server, die die Anfrage tatsächlich bearbeiten.
Nginx neu starten
Nach Abschluss der Konfiguration des Domänennamens und des Weiterleitungsziels müssen wir den Nginx-Server neu starten, damit die Konfiguration wirksam wird. Geben Sie im Terminal den folgenden Befehl ein, um neu zu starten:
sudo service nginx restart
Anschließend können Sie testen, ob die Weiterleitung korrekt eingestellt ist, indem Sie www.example1.com und www.example2.com besuchen.
Zusammenfassung
Durch Festlegen des Domänennamens und der Weiterleitungsregeln können wir den Reverse-Proxy von Nginx implementieren und Anforderungen an verschiedene Backend-Server weiterleiten. Dadurch können Sie Weiterleitungsregeln flexibel konfigurieren und einen effizienten Lastausgleich und eine dynamische Konfiguration erreichen. Gleichzeitig bietet Nginx auch eine Fülle von Modulen und Funktionen, die die Fähigkeiten des Reverse-Proxys weiter erweitern und mehr Anforderungen erfüllen können.
Das obige ist der detaillierte Inhalt vonDer Nginx-Reverse-Proxy legt den Domänennamen fest und implementiert die Weiterleitung elegant. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!