So verwenden Sie Nginx, um domänenübergreifende Front-End-Probleme zu lösen

So verwenden Sie Nginx, um domänenübergreifende Front-End-Probleme zu lösen

Vorwort

Bei der Entwicklung statischer Seiten, wie etwa Vue-Anwendungen, rufen wir häufig einige Schnittstellen auf, die wahrscheinlich domänenübergreifend sind. Anschließend meldet der Browser ein Cross-Origin-Problem und verweigert den Aufruf.

Die einfachste Lösung besteht darin, den Browser so einzustellen, dass Sicherheitsprobleme ignoriert werden und --disable-web-security festzulegen. Diese Methode eignet sich zwar gut für die Entwicklung von PC-Seiten, funktioniert jedoch nicht für mobile Seiten.

Lösung

Verwenden Sie Nginx, um Anfragen weiterzuleiten. Schreiben Sie die domänenübergreifende Schnittstelle, um die lokale Domänenschnittstelle aufzurufen, und leiten Sie diese Schnittstellen dann an die tatsächliche Anforderungsadresse weiter.

Zum Beispiel

Beispielsweise entwickeln wir eine Vue-Anwendung.

Original:

Die Debug-Seite ist: http://192.168.1.100:8080/

Die angeforderte Schnittstelle ist: http://ni.hao.sao/api/get/info

Schritt 1:

Die angeforderte Schnittstelle ist: http://192.168.1.100:8080/api/get/info

PS: Dies löst das domänenübergreifende Problem.

Schritt 2:

Gehen Sie nach der Installation von Nginx zum Verzeichnis /usr/local/etc/nginx/ (dies ist für Mac) und ändern Sie die Datei nginx.conf.

Schritt 3:

Kommentieren Sie die Standardserverkonfiguration aus.

Fügen Sie unten hinzu:

  Server{
    hören Sie 8888;
    Servername 192.168.1.100;
 
    Standort /{
      Proxy-Passwort http://192.168.1.100:8080;
    }
 
    Standort /api{
      Proxy-Passwort http://ni.hao.sao/api;
    }
  }

Nach dem Speichern starten Sie Nginx.

PS: Sie müssen nicht viel über die Nginx-Konfiguration wissen, es ist ganz einfach.

Schritt 4:

Besuchen Sie: http://192.168.1.100:8888/

Erledigt.

PS: Beachten Sie, dass der Zugriffsport „8888“ ist. Wenn Sie Adressen in anderen Domänen haben, fügen Sie einfach weiterhin Standorte hinzu.

Fehlerdemonstration

Ich habe die Nginx-Konfiguration zunächst nicht ganz verstanden und dachte, ich könnte sie wie folgt konfigurieren.

  Server{
    hören Sie 8080;
    Servername 192.168.1.100;
 
    Standort /api{
      Proxy-Passwort http://ni.hao.sao/api;
    }
  }

Der Grund, warum ich das geschrieben habe, ist, dass ich dachte, dadurch könnte Nginx mir dabei helfen, auf Anfragen auf 8080 zu lauschen und dann nur passende Anfragen weiterzuleiten. Was mir nicht klar war ist, dass Nginx, nachdem es auf diese Weise geschrieben wurde, Port 8080 belegen müsste.

Da der Port belegt sein muss, kann er nicht von anderen Prozessen desselben Protokolls belegt werden, was dazu führt, dass die entwickelte Seite mit Port 8080 nicht aktiviert werden kann. Erst als mich ein Kollege darauf aufmerksam machte, fiel mir die Sache wieder ein. Ich änderte meine Meinung und kam auf die obige Methode.

Zusammenfassen

Tatsächlich kann dies nicht nur während der Entwicklung und Fehlerbehebung, sondern auch in einer Produktionsumgebung erfolgen. Nachdem Sie Nginx zum Weiterleiten von Anforderungen verwendet haben, müssen die bereitzustellenden statischen Seiten nicht in derselben Domäne wie die Anforderungsschnittstelle platziert werden.

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 für das Front-End erforderlichen Nginx-Konfiguration
  • Nginx-Konfiguration für die Front-End-Entwicklung (Szenario)
  • Detaillierte Erläuterung der Nginx-Frontend-Verteilungsmethode basierend auf $remote_addr
  • Mehrere Methoden zum Bereitstellen mehrerer Front-End-Projekte mit nginx
  • Detaillierte Erklärung, wie Nginx das Problem des domänenübergreifenden Zugriffs auf Front-End-Ressourcen löst
  • Detaillierte Erklärung, was nginx auf dem Frontend leisten kann

<<:  MySQL ersetzt das Zeitfeld (Jahr, Monat, Tag) durch unveränderte Stunden, Minuten und Sekunden. Beispielanalyse

>>:  Detaillierte Erläuterung der Grundkenntnisse zur Front-End-Komponentenbildung

Artikel empfehlen

Grundlegende Verwendung von exists, in und any in MySQL

【1】existiert Verwenden Sie eine Schleife, um die ...

jQuery-Plugin zum Erzielen eines Code-Rain-Effekts

In diesem Artikel wird der spezifische Code des j...

Schritte zum Installieren von Superset unter dem Win10-System

Superset ist ein leichtes Self-Service-BI-Framewo...

Detaillierte Erklärung der MySQL-Datenbank-Trigger

Inhaltsverzeichnis 1 Einleitung 2 Trigger-Einführ...

Wie viele Daten können in einer MySQL-Tabelle gespeichert werden?

Programmierer müssen sich viel mit MySQL befassen...

Dieser Artikel hilft Ihnen, den Lebenszyklus in Vue zu verstehen

Inhaltsverzeichnis 1. vorErstellen & erstellt...

So löschen Sie eine Eigenschaft eines Objekts in JavaScript

1. löschen delete ist die einzige wirkliche Mögli...

So kompilieren Sie Nginx neu und fügen Module hinzu

Beim Kompilieren und Installieren von Nginx werde...

JavaScript zum Erzielen digitaler Uhreffekte

In diesem Artikelbeispiel wird der spezifische Co...

So verwenden Sie Elemente in React-Projekten

Dies ist mein erstes Mal, dass ich das Element-Fr...

Mysql-String-Abfangen und Abrufen von Daten im angegebenen String

Vorwort: Ich bin auf die Anforderung gestoßen, be...