Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie den Nginx-Reverse-Proxy, um domänenübergreifende Probleme zu lösen

So verwenden Sie den Nginx-Reverse-Proxy, um domänenübergreifende Probleme zu lösen

PHPz
PHPznach vorne
2023-05-31 10:20:307008Durchsuche

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 eindeutig angegeben werden muss . Der Domänenname, der mit der angeforderten Webseite übereinstimmt. Bei der Zusammenarbeit mit anderen während der Entwicklung dieses Projekts bin ich auf solche Probleme gestoßen.

So verwenden Sie den Nginx-Reverse-Proxy, um domänenübergreifende Probleme zu lösen

Lösung

  1. Im Allgemeinen verwenden Sie die domänenübergreifende Ressourcenfreigabe von cors mit dem Backend, um „access-control-allow-origin“ als Domänennamen festzulegen, auf den zugegriffen werden soll. und etwas Browsen Das Gerät wird nicht unterstützt.

  2. Basierend auf der Zusammenarbeit mit dem Backend des Partners wird der Nginx-Richtungs-Proxy verwendet, um die Same-Origin-Richtlinie des Browsers zu erfüllen und eine domänenübergreifende Implementierung zu erreichen Die Proxy-Methode (Reverse-Proxy) bezieht sich auf die Verwendung eines Proxyservers, um Verbindungsanfragen im Internet anzunehmen und die Anfrage dann an den Server im internen Netzwerk weiterzuleiten und die vom Server erhaltenen Ergebnisse an den Client zurückzugeben, der die Verbindung anfordert Das Internet erscheint nach außen als Server. Der Reverse-Proxy-Server erscheint dem Client als Originalserver und der Client muss keine besonderen Einstellungen vornehmen. Der Client sendet eine normale Anforderung an den Inhalt im Namespace (Namensraum) des Reverse-Proxys. Anschließend bestimmt der Reverse-Proxy, wohin die Anforderung weitergeleitet werden soll (ursprünglicher Server) und gibt den erhaltenen Inhalt wie folgt an den Client zurück Der Inhalt ist seinen eigenen Originalinhalt. 🔜

    http {
     include  mime.types;
     default_type application/octet-stream;
    
     sendfile  on;
    
     server {
      listen  8000; #监听8000端口,可以改成其他端口
      server_name localhost; # 当前服务的域名
    
      location /wili/api/ {
        proxy_pass http://chick.platform.deva.wili.us/api/; #添加访问路径录为/will/api的代理配置
        proxy_http_version 1.1;
      }
      
      location / {
        proxy_pass http://localhost:8001;
        proxy_http_version 1.1;
      }
      
      error_page 500 502 503 504 /50x.html;
      location = /50x.html {
       root html;
      }
    
     }
    
    }
  3. Konfigurationserklärung:

Aus den Konfigurationsinformationen geht hervor, dass wir Nginx den 8000-Port von localhost abhören lassen und auf Website a und b über den 8000-Port von localhost zugreifen.

Wir haben speziell einen Zugriff auf „/will/api“ konfiguriert, sodass Adressen, die mit „will/api“ beginnen, zur Verarbeitung an „“ weitergeleitet werden.

Änderung der Zugriffsadresse

Nachdem wir Nginx konfiguriert haben, muss der gesamte Zugriff über Nginx erfolgen und nicht über die ursprüngliche Adresse der Website (a Website localhost:8001, b Website). Daher müssen wir die Anforderungsschnittstelle in Website a ändern und durch ersetzen. Starten Sie als Nächstes Nginx und greifen Sie auf den konfigurierten 8000 zu.


So verwenden Sie den Nginx-Reverse-Proxy, um domänenübergreifende Probleme zu lösen Beachten Sie, dass der Start von Nginx möglicherweise mit dem Port in Konflikt steht und dazu führen kann, dass der Start nicht erfolgreich ist. Sie können im Task-Manager überprüfen, ob der Start erfolgreich ist.


Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Nginx-Reverse-Proxy, um domänenübergreifende Probleme zu lösen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen