ホームページ >運用・保守 >Nginx >Nginx がクロスドメイン Cookie を解決する方法

Nginx がクロスドメイン Cookie を解決する方法

(*-*)浩
(*-*)浩オリジナル
2019-07-15 13:28:377696ブラウズ

プロジェクト モジュールが増えるにつれ、多くのモジュールが個別にデプロイされるようになりました。モジュール間の通信は、Cookie を通じて行われる場合があります。たとえば、ポータルとアプリケーションがそれぞれ異なるマシンまたは Web コンテナにデプロイされている場合、ユーザーがログインすると、Cookie がブラウザ クライアントに書き込まれ (ユーザー コンテキスト情報が記録されます)、アプリケーションはその Cookie を取得しようとします。ポータル。これにより、Cookie クロスドメインの問題が解決されます。

Nginx がクロスドメイン Cookie を解決する方法

Cookie クロスドメイン問題の解決策 nginx リバース プロキシ

リバース プロキシの概念

リバース プロキシ (リバースプロキシ方式とは、プロキシサーバーを利用してインターネット上の接続要求を受け付け、その要求を内部ネットワーク上のサーバーに転送し、サーバーから得られた結果をインターネット上の接続を要求しているクライアントに返す方法です。時間、プロキシ サーバーは外部からはサーバーとして見えます。

リバース プロキシ サーバーはクライアントにとって元のサーバーのようなものであり、クライアントは特別な設定を行う必要はありません。クライアントは通常のリクエストをリバース プロキシの名前空間 (name-space) 内のコンテンツに送信します。その後、リバース プロキシはリクエストの転送先 (元のサーバー) を決定し、取得したコンテンツをクライアントに返します。次のようになります。コンテンツは次のようになります。独自のオリジナルコンテンツ。

シナリオ シミュレーション

2 つのプロジェクト web1 と web2 は、同じマシン上の異なる Tomcat にデプロイされています。次のように、web1 プロジェクトのindex.html をリクエストします。

Nginx がクロスドメイン Cookie を解決する方法

次に、リンクをクリックして web2 プロジェクトのindex.jsp をリクエストします。内容は次のとおりです。 #nginx の設定をもう一度見てください:

Nginx がクロスドメイン Cookie を解決する方法nginx のディレクション プロキシを使用して Cookie クロスドメインの問題を解決することは、実際にはブラウザを「騙す」ことによって実現されます。nginx を通じて、さまざまなプロジェクトからの Cookie を以下に置くことができます。 nginx ドメイン nginx を通じて、リバース プロキシはさまざまなプロジェクトによって書き込まれた Cookie を取得できます。

実際、上記のシナリオでは、$.cookie("user", "hjzgg", {path: "/web"}); のパスは "/" と書くことができます。 nginx の設定をより便利にするために、簡単にするために次のようにします。

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;
        }
Nginx 関連の技術記事の詳細については、Nginx 使用法チュートリアル 列にアクセスして学習してください。

以上がNginx がクロスドメイン Cookie を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。