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

推薦する

HTML の基本 - CSS スタイルシート、スタイル属性、フォーマット、レイアウトの詳細

1.位置:固定一部の Web サイトの右下隅にあるポップアップ ウィンドウなどの、ブラウザーを基準と...

webpackを使用してTypeScriptコードをパッケージ化およびコンパイルする方法を教えます

TypeScript バンドルwebpack 統合通常、実際の開発では、ビルド ツールを使用してコー...

Hbase 入門

1. HBaseの概要1.1 HBaseとはHBase は、高い信頼性、高いパフォーマンス、列ストレ...

MySQL が外部キーを作成できない理由と解決策

2 つのテーブルを関連付けるときに、外部キーを作成できませんでした。このブログから、問題は、ポイント...

Linux システムでの gcc コマンドの使用法の詳細な説明

目次1. 前処理2. コンパイル3. コンパイル4. リンク1. gccのインストール(Ubuntu...

HTML タグでの this の使用法の紹介

例えば:コードをコピーコードは次のとおりです。 <html> <ヘッド> &...

TypeScriptのインストールと使用方法と基本的なデータ型

最初のステップはTypeScriptをグローバルにインストールすることですnpmを使用してインストー...

MySQLが内部一時テーブルを使用するタイミングについて簡単に説明します。

組合執行分析を簡単にするために、次のSQLを例として使用します。 テーブル t1 を作成します ( ...

シームレスなトークンリフレッシュを実現する方法

目次1. 需要方法1方法2方法3 2. 実装3. 問題解決質問1: トークンの複数回の更新を防ぐ方法...

HTML フローティング フレーム (iframe 読み込み HTML) の設定と使用の例

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

js、css、htmlはブラウザのさまざまなバージョンを決定します

正規表現を使用してIEブラウザのバージョンを判別するIEブラウザかどうか確認するif (docume...

Vueのイベント処理とイベント修飾子の詳細な説明

<div id="ルート"> <h2>頑張れ、{{na...

JavaScriptプロトタイプチェーンの詳細な説明

目次1. コンストラクタとインスタンス2. プロパティプロトタイプ3. プロパティ __proto_...

jQuery はパーセンテージスコアリングの進捗バーを実装します

この記事では、パーセンテージスコアリングプログレスバーを実現するためのjQueryの具体的なコードを...

Alibaba Cloud に MySQL データベースをインストールするときに発生する 2002 エラーを解決する方法

データベースのインストール中に次のエラーが発生しました: 解決策は次のとおりです。 1. binディ...