Heim Betrieb und Instandhaltung Nginx Wie Nginx domänenübergreifende Probleme löst

Wie Nginx domänenübergreifende Probleme löst

Jun 12, 2019 am 10:24 AM
nginx 跨域

Wie Nginx domänenübergreifende Probleme löst

Wie verwende ich Nginx, um domänenübergreifende Front-End-Probleme zu lösen?

Vorwort

Bei der Entwicklung statischer Seiten und Anwendungen wie Vue rufen wir häufig einige Schnittstellen auf, diese Schnittstellen sind wahrscheinlich domänenübergreifend und dann Browser Ein Cross-Origin-Problem wird gemeldet und es werden keine Anpassungen vorgenommen.

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, wenn es sich um eine mobile Seite handelt.

Lösung

Verwenden Sie Nginx, um Anfragen weiterzuleiten. Schreiben Sie domänenübergreifende Schnittstellen als Schnittstellen der lokalen Domäne und leiten Sie diese Schnittstellen dann an die tatsächliche Anforderungsadresse weiter.

Zum Beispiel

Zum Beispiel entwickeln wir eine Vue-Anwendung.

Original:

Die Debugging-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: Das löst das Cross-Domain-Problem.

Schritt 2:

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

Schritt 3:

Kommentieren Sie die Standardserverkonfiguration aus.

Unten hinzufügen:

   server{
        listen 8888;
        server_name  192.168.1.100;
 
        location /{
            proxy_pass http://192.168.1.100:8080;
        }
 
        location /api{
            proxy_pass http://ni.hao.sao/api;
        }
    }
Nach dem Login kopieren

Starten Sie nach dem Speichern Nginx.

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

Schritt 4:

Besuch: http://192.168.1.100:8888/

Fertig.

PS: Beachten Sie, dass der aufgerufene Port „8888“ ist. Wenn Sie Adressen in anderen Domänen haben, fügen Sie einfach den Standort hinzu.

Fehlerdemonstration

Ich habe die Konfiguration von Nginx zunächst nicht ganz verstanden, daher dachte ich, es könnte wie folgt konfiguriert werden.

    server{
        listen 8080;
        server_name  192.168.1.100;
 
        location /api{
            proxy_pass http://ni.hao.sao/api;
        }
    }
Nach dem Login kopieren

Der Grund, warum ich das schreibe, ist, dass ich denke, dass Nginx mir dabei helfen wird, 8080-Anfragen zu überwachen und dann nur passende Anfragen weiterzuleiten. Was mir nicht klar war, ist, dass Nginx nach dem Schreiben dieses Artikels Port 8080 belegen muss.

Da der Port belegt sein muss, kann er nicht mehr von anderen Prozessen mit demselben Protokoll belegt werden, was dazu führt, dass die entwickelte Seite auf Port 8080 nicht aktiviert werden kann. Nachdem ein Kollege es erwähnt hatte, erinnerte ich mich an die Angelegenheit, überlegte es mir anders und entwickelte die beste Methode.

Zusammenfassung

Tatsächlich können Sie dies nicht nur während der Entwicklung und beim Debuggen tun, sondern auch in der Produktionsumgebung. Nachdem Nginx zum Weiterleiten der Anforderung verwendet wurde, muss die bereitzustellende statische Seite nicht in derselben Domäne wie die Anforderungsschnittstelle platziert werden.

Anhang

Wenn Sie ein Problem mit der Anfrage finden und feststellen, dass es sich um einen von Nginx gemeldeten Fehler handelt, müssen Sie nur das error.log von Nginx finden Kenne den Grund.

Voraussetzung ist die Konfiguration von error.log in nginx.conf:

error_log  logs/error.log;
Nach dem Login kopieren

Der Speicherort von error.log auf dem Mac:

/usr/local/Cellar/nginx/1.15.8/logs/error.log
Nach dem Login kopieren

Weitere Informationen zu Nginx finden Sie unter Tutorial zur Nginx-Nutzung Spalte!

Das obige ist der detaillierte Inhalt vonWie Nginx domänenübergreifende Probleme löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server Apr 21, 2024 am 07:22 AM

So erlauben Sie den externen Netzwerkzugriff auf den Tomcat-Server

Was sind die Start- und Stoppbefehle von Nginx? Was sind die Start- und Stoppbefehle von Nginx? Apr 02, 2024 pm 08:45 PM

Was sind die Start- und Stoppbefehle von Nginx?

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

So führen Sie thinkphp aus

Was sind die Unterschiede zwischen Tomcat und Nginx? Was sind die Unterschiede zwischen Tomcat und Nginx? Dec 27, 2023 pm 05:07 PM

Was sind die Unterschiede zwischen Tomcat und Nginx?

Willkommen bei Nginx! Wie kann ich es lösen? Willkommen bei Nginx! Wie kann ich es lösen? Apr 17, 2024 am 05:12 AM

Willkommen bei Nginx! Wie kann ich es lösen?

So registrieren Sie phpmyadmin So registrieren Sie phpmyadmin Apr 07, 2024 pm 02:45 PM

So registrieren Sie phpmyadmin

So stellen Sie das NodeJS-Projekt auf dem Server bereit So stellen Sie das NodeJS-Projekt auf dem Server bereit Apr 21, 2024 am 04:40 AM

So stellen Sie das NodeJS-Projekt auf dem Server bereit

So lösen Sie das Nginx-Problem beim Zugriff auf die Website So lösen Sie das Nginx-Problem beim Zugriff auf die Website Apr 02, 2024 pm 08:39 PM

So lösen Sie das Nginx-Problem beim Zugriff auf die Website

See all articles