Da es immer mehr Projektmodule gibt, werden viele Module jetzt unabhängig voneinander bereitgestellt. Die Kommunikation zwischen Modulen kann manchmal über Cookies erfolgen. Beispielsweise werden das Portal und die Anwendung auf verschiedenen Computern bzw. Webcontainern bereitgestellt. Wenn sich der Benutzer anmeldet, wird ein Cookie auf dem Browser-Client geschrieben (der die Benutzerkontextinformationen aufzeichnet) und die Anwendung möchte das Cookie unter abrufen das Portal, das das Problem der domänenübergreifenden Cookies lösen wird.
Nginx-Reverse-Proxy zur Lösung des domänenübergreifenden Cookie-Problems
Reverse-Proxy-Konzept
Reverse-Proxy (Reverse Die Methode „Proxy“ bezieht sich auf die Verwendung eines Proxy-Servers, um Verbindungsanfragen im Internet anzunehmen, die Anfrage dann an den Server im internen Netzwerk weiterzuleiten und die vom Server erhaltenen Ergebnisse an den Client zurückzugeben, der die Verbindung im Internet anfordert Gleichzeitig erscheint der Proxy-Server nach außen als Server.
Der Reverse-Proxy-Server sieht für den Client wie der Originalserver aus 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.
Szenariosimulation
Zwei Projekte, web1 und web2, werden auf verschiedenen Tomcats auf demselben Computer wie folgt bereitgestellt:
Klicken Sie dann auf den Link, um die index.jsp des web2-Projekts anzufordern. Der Inhalt lautet wie folgt:
Sehen Sie sich die Nginx-Konfiguration noch einmal an:
Die Verwendung des Nginx-Richtungs-Proxys zur Lösung des domänenübergreifenden Cookie-Problems wird tatsächlich durch „Betrügen“ des Browsers erreicht. Über Nginx können wir die Cookies verschiedener Projekte platzieren Unter der Nginx-Domäne kann der Reverse-Proxy von verschiedenen Projekten geschriebene Cookies erhalten.
Tatsächlich kann im obigen Szenario der Pfad in $.cookie("user", "hjzgg", {path: "/web"}); geschrieben werden. Damit die Nginx-Konfiguration einfacher ist, lautet sie wie folgt.
location /web1 { proxy_pass http://web1; proxy_set_header Host 127.0.0.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Cookie $http_cookie; log_subrequest on; } location /web2 { proxy_pass http://web2; proxy_set_header Host 127.0.0.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Cookie $http_cookie; log_subrequest on; }
Weitere technische Artikel zum Thema Nginx finden Sie in der Spalte Nginx-Tutorial, um mehr darüber zu erfahren!
Das obige ist der detaillierte Inhalt vonWie Nginx domänenübergreifende Cookies löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!