Avec de plus en plus de modules de projet, de nombreux modules sont désormais déployés indépendamment. La communication entre les modules peut parfois être réalisée via des cookies. Par exemple, le portail et l'application sont respectivement déployés sur des machines ou des conteneurs Web différents. Si l'utilisateur se connecte, un cookie sera écrit sur le client du navigateur (enregistrant les informations de contexte de l'utilisateur) et l'application souhaite obtenir le cookie sous. le portail, ce qui entraînera la résolution du problème des cookies inter-domaines.
Proxy inverse Nginx pour résoudre le problème inter-domaines des cookies
Concept de proxy inverse
Proxy inverse Le ( La méthode Reverse Proxy) fait référence à l'utilisation d'un serveur proxy pour accepter les demandes de connexion sur Internet, puis transmettre la demande au serveur sur le réseau interne et renvoyer les résultats obtenus du serveur au client demandant la connexion sur Internet ; cette fois, le proxy Le serveur apparaît comme un serveur pour le monde extérieur.
Le serveur proxy inverse ressemble au serveur d'origine pour le client, et le client n'a pas besoin de définir de paramètres particuliers. Le client envoie une requête normale au contenu dans l'espace de noms du proxy inverse (espace de noms), puis le proxy inverse déterminera où transmettre la requête (serveur d'origine) et renverra le contenu obtenu au client, comme ceux-ci. Le contenu est son propre contenu original.
Simulation de scénario
Deux projets, web1 et web2, sont déployés sur différents tomcats sur la même machine Demandez le index.html du projet web1, comme suit :
Cliquez ensuite sur le lien pour demander le index.jsp du projet web2 Le contenu est le suivant :
Regardez à nouveau la configuration de nginx :L'utilisation du proxy de direction de nginx pour résoudre le problème des cookies entre domaines est en fait obtenue en "trompant" le navigateur. Grâce à nginx, nous pouvons mettre les cookies de différents projets. sous le domaine nginx. Grâce à nginx Le proxy inverse peut obtenir des cookies écrits par différents projets.
En fait, dans le scénario ci-dessus, le chemin dans $.cookie("user", "hjzgg", {path: "/web"}); pour que la configuration de nginx soit plus simple. Pour faire simple, c'est la suivante.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; }
Tutoriel Nginx pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!