Detaillierte Erläuterung der Verwendung des Nginx-Reverse-Proxys zur Lösung domänenübergreifender Probleme

Detaillierte Erläuterung der Verwendung des Nginx-Reverse-Proxys zur Lösung domänenübergreifender Probleme

Frage

Im vorherigen Artikel zur domänenübergreifenden Ressourcenfreigabe wurde erwähnt, dass beim domänenübergreifenden Senden von Cookies Access-Control-Allow-Origin nicht auf * gesetzt werden kann und ein eindeutiger Domänenname angegeben werden muss, der mit der angeforderten Webseite übereinstimmt. Diese Art von Problem trat bei der Zusammenarbeit mit anderen während der Entwicklung dieses Projekts auf.

Lösung

  1. Im Allgemeinen können Sie CORS Cross-Domain Resource Sharing mit dem Backend verwenden, um Access-Control-Allow-Origin auf den Domänennamen zu setzen, auf den zugegriffen werden soll. Dies erfordert die Zusammenarbeit des Backends und wird von einigen Browsern nicht unterstützt.
  2. Basierend auf der Zusammenarbeit mit dem Backend des Partners wird der Nginx-Proxy verwendet, um die Homologierichtlinie des Browsers zu erfüllen und domänenübergreifende

Durchführung

Reverse-Proxy-Konzept

Bei der Reverse-Proxy-Methode wird ein Proxyserver verwendet, um Verbindungsanfragen im Internet anzunehmen. Anschließend werden die Anfragen an den Server im internen Netzwerk weitergeleitet. Die vom Server erhaltenen Ergebnisse werden dann an den Client zurückgegeben, der die Verbindung im Internet anfordert. Zu diesem Zeitpunkt erscheint der Proxyserver der Außenwelt als Server. Der Reverse-Proxy-Server erscheint dem Client wie der Originalserver und der Client muss keine spezielle Konfiguration durchführen. Der Client sendet eine normale Anforderung an den Inhalt im Namespace des Reverse-Proxys. Der Reverse-Proxy ermittelt dann, wohin die Anforderung weitergeleitet werden soll (zum ursprünglichen Server), und gibt den erhaltenen Inhalt an den Client zurück, als ob der Inhalt ursprünglich ihm gehört hätte.

Schritte zur domänenübergreifenden Implementierung mithilfe des Nginx-Reverse-Proxys

Gehen Sie zur offiziellen Nginx-Website, um das Paket herunterzuladen und die Nginx-Umgebung zu erstellen

Ändern Sie die Nginx-Konfigurationsdatei, suchen Sie die Datei ngixn.conf und ändern Sie die entsprechende Konfiguration

http {
 mime.types einschließen;
 Standardtyp Anwendung/Oktett-Stream;

 sendfile an;

 Server {
  listen 8000; #Hören Sie auf Port 8000, Sie können ihn auf andere Ports ändern server_name localhost; #Domänenname des aktuellen Dienststandorts /wili/api/ {
    proxy_pass http://chick.platform.deva.wili.us/api/; #Proxy-Konfiguration mit aufgezeichnetem Zugriffspfad als /will/api proxy_http_version 1.1 hinzufügen;
  }
  
  Standort / {
    Proxy-Passwort http://localhost:8001;
    Proxy_http_Version 1.1;
  }
  
  Fehlerseite 500 502 503 504 /50x.html;
  Standort = /50x.html {
   Stamm-HTML;
  }

 }

}

Konfigurationserklärung:

  • Aus den Konfigurationsinformationen können wir ersehen, dass wir nginx auf Port 8000 von localhost lauschen lassen und der Zugriff auf Website A und Website B über Port 8000 von localhost erfolgt.
  • Wir haben speziell einen Zugriff von „/will/api“ konfiguriert, sodass alle Adressen, die mit „will/api“ beginnen, zur Verarbeitung an „http://chick.platform.deva.wili.us/api/“ weitergeleitet werden.
  • Änderung der Zugriffsadresse

Nachdem wir nginx konfiguriert haben, müssen alle Zugriffe über nginx und nicht über die ursprüngliche Website-Adresse (Website A localhost:8001, Website B http://chick.platform.deva.wili.us/api/) erfolgen. Daher müssen wir die Anforderungsschnittstelle auf Website A in http://localhost:8000/wili/api/ ändern. Als nächstes starten Sie nginx und greifen auf den konfigurierten 8000 zu


Zu beachten ist, dass beim Starten von nginx Portkonflikte auftreten und Startfehler auftreten können. Sie können im Taskmanager überprüfen, ob der Start erfolgreich war.

Zusammenfassen

Es gibt viele Möglichkeiten, domänenübergreifende Browserprobleme zu lösen:

  1. jsonp erfordert die Zusammenarbeit des Zielservers mit einer Rückruffunktion
  2. CORS erfordert, dass der Server den Header setzt: Access-Control-Allow-Origin
  3. Die Nginx-Reverse-Proxy-Methode wird selten erwähnt, erfordert jedoch nicht die Zusammenarbeit des Zielservers. Sie müssen jedoch einen Transit-Nginx-Server erstellen, um Anforderungen weiterzuleiten. (Durch die Verwendung eines Reverse-Proxys kann der Zugriff auf Webseiten langsamer sein als zuvor.)

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:
  • Detaillierte Erläuterung der Konfiguration und Verwendung des Kartenmoduls im Nginx-Server
  • Verwenden des Map-Befehls von Nginx zum Umleiten von Seiten
  • So verwenden Sie Nginx, um den domänenübergreifenden Zugriff auf Cookies zu lösen
  • Nginx löst das Cross-Domain-Problem bei der Weiterleitung von Adressen
  • Vue-Verpackung verwendet Nginx-Proxy, um domänenübergreifende Probleme zu lösen
  • So verwenden Sie Nginx zum Lösen domänenübergreifender Probleme (am Beispiel von Flask)
  • So verwenden Sie eine Karte, um die domänenübergreifende Nutzung mehrerer Domänennamen in Nginx zu ermöglichen

<<:  Beispiel für die Implementierung der Wertübertragung zwischen WeChat-Miniprogrammseiten

>>:  So installieren und konfigurieren Sie MySQL und ändern das Root-Passwort

Artikel empfehlen

Mysql 5.6.37 Winx64-Installation Dual-Version MySQL-Hinweise

Wenn MySQL Version 5.0 bereits auf dem Computer v...

Auszeichnungssprache - vereinfachte Tags

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Verschiedene korrekte Haltungen zur Verwendung von Umgebungsvariablen in Webpack

Inhaltsverzeichnis Schreiben Sie vor Geschäftscod...

VSCode-Entwicklung UNI-APP Konfigurations-Tutorial und Plugin

Inhaltsverzeichnis Vorne geschrieben Vorsichtsmaß...

So rufen Sie einen HTML-Code auf mehreren HTML-Seiten gemeinsam auf

Methode 1: Skriptmethode verwenden: Erstellen Sie...

CSS3-Eigenschaft line-clamp steuert die Verwendung von Textzeilen

Beschreibung: Begrenzen Sie die Anzahl der Textze...

Beispielcode der Uniapp Vue- und NVUE-Karussellkomponenten

Der Vue-Teil ist wie folgt: <Vorlage> <K...

Einführung in Container-Datenvolumes in Docker

Inhaltsverzeichnis Datenvolumen des Docker-Contai...

Detaillierte Erklärung des Unterschieds zwischen CSS-Link und @import

Wie fügt man CSS in HTML ein? Es gibt drei Möglic...

So verwenden Sie Verbindungen der Physik-Engine in CocosCreator

Inhaltsverzeichnis Mausgelenk Mausgelenk AbstandG...

Vue realisiert die Funktion eines Bucheinkaufswagens

In diesem Artikelbeispiel wird der spezifische Co...