Nginx セッション損失問題の解決策

Nginx セッション損失問題の解決策

nginx をリバース プロキシ tomcat として使用する場合、セッション損失が発生する可能性があります。リクエストが送信されるたびに JESSIONID が変更され、最後のセッションが失われ、新しいセッションが作成されたことが示されます。

最初のケース:

 サーバ{
    聞く 80;
    サーバー名 www.jiahemdata.com www.jiahemdata.cn;
    文字セット utf-8;
    位置 /{
      proxy_redirect オフ;
      プロキシパス http://127.0.0.1:8093;
      proxy_set_header ホスト $host;
      proxy_set_header リファラー $http_referer;
      proxy_set_header X-Real-Ip $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    access_log ログ/tomcat_access.log;
  }

現在の nginx は 1 つのポートのみを listen し、パスを設定しないため、セッション損失の問題は通常は発生しません。

2番目のケース:

 サーバ{
    聞く 80;
    サーバー名 www.jiahemdata.com www.jiahemdata.cn;
    ルート /opt/tomcat-jhyx/webapps/jhyx/;
    文字セット utf-8;
    位置 /{
      プロキシパス http://127.0.0.1:8093/jhyx/;
      proxy_set_header ホスト $host;
      proxy_set_header リファラー $http_referer;
      proxy_set_header X-Real-Ip $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    access_log ログ/tomcat_access.log;
  }

この場合、ポートのリッスンだけでなく、Tomcat フォルダーも指定されるため、各リクエストが変更され、セッションが失われます。

3番目のケース:

 サーバ{
    聞く 80;
    サーバー名 www.jiahemdata.com www.jiahemdata.cn;
    ルート /opt/tomcat-jhyx/webapps/jhyx/;
    文字セット utf-8;
    位置 /{
      proxy_redirect オフ;
      プロキシパス http://127.0.0.1:8093/jhyx/;
      proxy_cookie_path /jhyx/ /; //リクエストが発生するたびにCookieパスが変更されないように設定してください。
      proxy_cookie_path /jhyx/;
      proxy_set_header ホスト $host;
      proxy_set_header リファラー $http_referer;
      proxy_set_header X-Real-Ip $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    access_log ログ/tomcat_access.log;
  }

この時点で、問題はまだ解決されていないことに気付きます。この時点で、Cookie パスを明確に設定したのに、なぜ機能しないのかと考えています。これは、リクエストしたときに Cookie を送信しなかったためです。

4番目のケース:

 サーバ{
    聞く 80;
    サーバー名 www.jiahemdata.com www.jiahemdata.cn;
    ルート /opt/tomcat-jhyx/webapps/jhyx/;
    文字セット utf-8;
    位置 /{
      proxy_redirect オフ;
      プロキシパス http://127.0.0.1:8093/jhyx/;
      proxy_cookie_path /jhyx/ /;
      proxy_cookie_path /jhyx/;
      proxy_set_header ホスト $host;
      proxy_set_header リファラー $http_referer;
      proxy_set_header Cookie $http_cookie; //リクエスト送信時にクッキー情報を伝達します proxy_set_header X-Real-Ip $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    access_log ログ/tomcat_access.log;
  }

インターネットで正しい解決策が見つかるといいですね。

Nginx セッション損失問題を解決する方法についての記事はこれで終わりです。Nginx セッション損失の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Springsession nginx リバースプロキシ統合プロセス
  • Nginx セッション共有問題の解決策の分析
  • Nginx リバース プロキシでセッション永続性を実装する 2 つの方法の詳細な説明
  • Nginx+Tomcat によるセッション管理の実装
  • nginx+redisはセッション共有を実現します
  • nginx+tomcatは負荷分散を実装し、redisセッション共有を使用します
  • Nginxでの共有セッション設定方法の例
  • Nginx 負荷分散マルチサイト共有セッション

<<:  複数の値を返す MySQL ストアド プロシージャ メソッドの例

>>:  JS ベースの Ajax 同時リクエスト制御を実装する方法

推薦する

Docker Swarmの概念と使用法の詳細な説明

Docker Swarm は、Docker によって開発されたコンテナ クラスター管理サービスです。...

Linuxでバージョン情報を表示する方法

Linux でバージョン情報を表示する方法。ビット数、バージョン情報、CPU コア情報、CPU 固有...

CentOS 6.9 で glibc ダイナミック ライブラリをアップグレードする詳細なプロセス

glibc は、gnu によってリリースされた libc ライブラリ、つまり c ランタイム ライブ...

フォーム内のどの隠し属性をフォームとともに送信できるか

フォーム内の visibility=hidden および display=none のフォーム要素は...

ウェブデザインとは何か

<br />元の記事: http://www.alistapart.com/articl...

Node.jsを理解するのはとても簡単です

目次Node.js の公式紹介Node.jsのコア開発言語ウェブ上の JavaScript と No...

PDO を使用して SQL インジェクションを防ぐ原理の分析

序文この記事では、SQL インジェクションを回避するために pdo の前処理メソッドを使用します。詳...

Navicatは機能ソリューション共有を作成できません

初めて MySQL FUNCTION を書いたとき、エラーが何度も発生しました。 Err] 1064...

Windows 10 での MySQL 8.0.19 のインストールと設定のチュートリアル

来学期にMySQLを勉強します。事前に自宅で練習していませんでした。インストールに時間がかかるとは思...

MySQL トランザクション分離レベルの詳細

serializableシリアル化(問題なし)トランザクションは順次実行する必要があります。前のトラ...

display:olck/none を使用してメニューバーを作成する方法

display:bolck/none によるメニューバーの完成の効果 図 1:まず、完成したエフェク...

JS上級編ES6の6つの継承方法

目次1. プロトタイプチェーン継承2. コンストラクタによる継承3. 組み合わせ継承4. プロトタイ...

MySQL における between の境界と範囲の説明

境界範囲間のmysql間の範囲は両側の境界値を含む例: 3 から 7 までの id は、id >...

相対幅と絶対幅が競合する場合の HTML+CSS div ソリューション

相対幅と絶対幅が競合する場合のdivソリューション概要: 一般的に、絶対幅を使用する場合は px を...

読み取り専用と無効の違い

要約すると: Readonly は入力 (テキスト/パスワード) とテキスト領域に対してのみ有効です...