Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie Nginx domänenübergreifende Cookies löst

Wie Nginx domänenübergreifende Cookies löst

(*-*)浩
(*-*)浩Original
2019-07-15 13:28:377686Durchsuche

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.

Wie Nginx domänenübergreifende Cookies löst

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:

Wie Nginx domänenübergreifende Cookies löst

Klicken Sie dann auf den Link, um die index.jsp des web2-Projekts anzufordern. Der Inhalt lautet wie folgt:

Wie Nginx domänenübergreifende Cookies löst

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!

Stellungnahme:
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