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 同時リクエスト制御を実装する方法

推薦する

Windows 10 での MySQL 8.0.11 圧縮バージョンのインストール チュートリアル

この記事では、MySQL 8.0.11圧縮版のインストールチュートリアルを参考までに紹介します。具体...

React-Dropzone をベースにアップロードコンポーネント機能を開発する (サンプルデモ)

今回はReact-Flaskフレームワーク上でアップロードコンポーネントを開発するスキルについてお話...

MySQL の垂直テーブルを水平テーブルに変換する方法と最適化のチュートリアル

1. 縦型テーブルと横型テーブル垂直テーブル: テーブル内のフィールドとフィールド値はキーと値の形式...

Javascript における非同期待機の詳細な理解

この記事では、async/await がすべての JavaScript 開発者にとって非同期プログラ...

v-model 双方向バインディングデータを実装する vue カスタム コンポーネントのサンプル コード

プロジェクトでは、プロジェクトが呼び出すカスタム パブリック コンポーネントに遭遇します。通常、pr...

CentOS MySQLデータベースのスケジュールバックアップを実装する方法

次のスクリプトは、MySQLデータベース全体のスケジュールされたバックアップに使用されます。 mys...

太陽系の惑星のアニメーション効果を実現するHTML+CSS3コード

太陽系の 8 つの惑星(衛星を除く)のアニメーションを作成します。すべての惑星は太陽の周りを回ってい...

JavaScript で 24 以上の配列メソッドを手動で実装する

目次1. トラバーサルクラス1. 各2. 地図3. すべての4. いくつか5. フィルター6. 減ら...

HTMLタグと基本要素の学習のまとめ

1. HTML の要素とタグ<br />要素は、1 つのタグまたは 1 組のタグによって...

純粋な CSS3 を使用して、円の動的な光る特殊効果アニメーションを実装するためのサンプル コード

この記事では、主に、円形のダイナミックな光る特殊効果アニメーションを実現するための純粋な CSS3 ...

Zabbix はどのようにして ssh 経由でネットワーク デバイス データを監視および取得するのでしょうか?

シナリオシミュレーション:ある会社の運用保守担当者は、以前購入した一連のネットワーク機器の光ポートの...

vue-routeルーティング管理のインストールと設定方法

導入Vue Router 、 Vue.jsの公式ルーティング マネージャーです。 Vue.jsのコア...

MySQL で浮動小数点データを文字データに変換するときに起こりうる問題の詳細な説明

序文この記事は主に、MySQL で浮動小数点型を文字型に変換するときに発生する問題を紹介します。これ...

Dockerカスタムブリッジdocker0とdockerのコマンド操作の開始、終了、再起動

質問会社がサーバーを移行した後、デフォルトで作成された docker0 ブリッジが会社の外部ネットワ...

MySQL 文字セットの文字化けとその解決方法

序文文字セットは、一連のシンボルとエンコード規則です。Oracle データベースでも MySQL デ...