Unterschied und Prinzipanalyse des Nginx-Forward- und Reverse-Proxy

Unterschied und Prinzipanalyse des Nginx-Forward- und Reverse-Proxy

1. Der Unterschied zwischen Forward-Proxy und Reverse-Proxy

Ein Forwardproxy fungiert als Proxy für den Client und ein Reverseproxy fungiert als Proxy für den Server.

1.1 Weiterleitungsproxy

Zwischen Client und Server befindet sich ein Forward-Proxy-Server. Um Daten vom Server abzurufen, sendet der Client eine Anfrage an den Proxy-Server und gibt dabei den Zielserver an. Anschließend leitet der Proxy-Server die vom Zielserver zurückgegebenen Daten an den Client weiter. Hier muss der Client einige Forward-Proxy-Einstellungen vornehmen.

Beispiel: Die Wand hochklettern

Bei einem Forward-Proxy wird die Anfrage des Clients weitergeleitet

1.2 Reverse-Proxy

Beim Reverse-Proxy ist sich der Client des Proxys nicht bewusst und kann ohne Konfiguration darauf zugreifen. Der Client sendet die Anforderung an den Reverse-Proxy-Server, der den Zielserver zum Abrufen der Daten auswählt und diese dann an den Client zurücksendet. Zu diesem Zeitpunkt sind der Reverse-Proxy-Server und der Zielserver für die Außenwelt ein Server. Offengelegt wird nur die Adresse des Proxy-Servers, die tatsächliche IP-Adresse des Servers ist verborgen.

2. Verwendung des Nginx-Reverse-Proxys

Erstellen Sie eine neue virtuelle Hostkonfiguration in der Nginx-Konfigurationsdatei nginx.conf.

Server {
    hören Sie 8080;
    Servername localhost;
    
    Standort /Kategorie/ {
      Proxy-Passwort http://localhost;
    }
  }

In der obigen Konfiguration

„listen“ gibt den Port an, auf dem nginx lauscht;

Servername ist der Domänenname, der beim Zugriff auf Nginx im Browser eingegeben wird. Sie können die IP-Adresse direkt eingeben. Wenn Sie mehrere binden möchten, können Sie sie durch Leerzeichen trennen.

location gibt die abzugleichende URL an, wenn nginx den Port abhört. Wenn die auf nginx zugreifende URL /category/ enthält, wird der Proxy ausgeführt.

proxy_pass gibt das Ziel an, an das Nginx die Anforderung des Clients weiterleitet.

Beachten Sie hier die Pfadangabe von proxy_pass. Wenn der Pfad wie oben ohne / endet, handelt es sich um einen relativen Pfad. Dann wird nginx beim Weiterleiten der Anfrage /category/ in der ursprünglichen URL nicht abfangen. Wenn der Browser beispielsweise auf http://localhost:8080/category/findAll zugreift, lautet die von nginx tatsächlich gesendete Anfrageadresse http://localhost/category/findAll.

Wenn der Zielpfad von proxy_pass mit einem / am Ende konfiguriert ist, was einen absoluten Pfad angibt, fängt nginx beim Weiterleiten der Anforderung /category/ in der ursprünglichen URL ab. Wenn der Browser beispielsweise auf http://localhost:8080/category/findAll zugreift, lautet die von nginx tatsächlich gesendete Anforderungsadresse http://localhost/findAll.

Bei der Konfiguration müssen Sie entsprechend Ihren Anforderungen entscheiden, ob / einbezogen werden soll. Andernfalls meldet Nginx bei der tatsächlichen Verwendung immer einen 404-Fehler.

Meine Konfiguration hier enthält /category in meinem Backend-Schnittstellenpfad, also verwende ich einen relativen Pfad und behalte diesen bei.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Verwenden des Nginx-Forward-Proxys zur Implementierung einer Analyse des Intranet-Domänennamen-Weiterleitungsprozesses
  • Diagramm des Prozesses zur Implementierung eines Richtungsproxys durch Nginx
  • Detaillierte Erläuterung des Nginx-Forward-Proxys und des Reverse-Proxys
  • Eine universelle Nginx-Schnittstelle zur Implementierung der Reverse-Proxy-Konfiguration
  • Interviewfragen zu Forwardproxy und Reverseproxy in verteilter Architektur

<<:  js realisiert horizontale und vertikale Slider

>>:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.18

Artikel empfehlen

So ändern Sie die Ubuntu-Quellliste (Quellliste) - detaillierte Erklärung

Einführung Die Standardquelle von Ubuntu ist kein...

Das Laufschriftelement implementiert Effekte wie scrollende Schriften und Bilder

Mit dem Laufschriftelement können Sie einfache Gle...

Ubuntu installiert mehrere Versionen von CUDA und wechselt jederzeit

Ich werde nicht erklären, was CUDA ist, sondern d...

Implementierungsschritte der MySQL-Master-Slave-Replikation

Inhaltsverzeichnis MySQL Master-Slave-Replikation...

Galeriefunktion durch natives Js implementiert

Inhaltsverzeichnis Der erste Der Zweite Native Js...

Mehrere Möglichkeiten zum Verbinden von Tabellen in MySQL

Die Verbindungsmethode in der MySQL-Tabelle ist e...

Vue implementiert einen Einkaufswagen, der die Einkaufsmenge ändern kann

In diesem Artikel erfahren Sie, wie Sie mit Vue d...

Lösung für dieselbe IP nach dem Klonen der virtuellen Ubuntu 18-Maschine

Vorwort Ich habe vor Kurzem eine virtuelle Maschi...

Der Unterschied zwischen Schlüssel und Index in MySQL

Schauen wir uns zunächst den Code an: ALTER TABLE...

Zusammenfassung zur Verwendung von HTML-Meta-Tags (empfohlen)

Meta-Tag-Funktion Der META-Tag ist ein Schlüsselt...

Details zur Vue-Vorlagenkompilierung

Inhaltsverzeichnis 1. analysieren 1.1 Regeln für ...

CSS3 verwendet scale() und rotate() zum Zoomen und Drehen

1. scale()-Methode Zoom steht für „Verkleinern“ u...