Tomcat Nginx Redis セッション共有プロセス図

Tomcat Nginx Redis セッション共有プロセス図

1. 準備

ミドルウェア: Tomcat、Redis、Nginx

Jar パッケージ: commons-pool2-2.4.2.jar、jedis-2.8.0.jar、tomcat-redis-session-manager-2.0.0.jar

2. Tomcatを設定する

複数のTomacatは異なるポート番号で設定する必要がある

/ライブラリ

jarパッケージをこの場所に保存します

設定ファイル

コンテキスト

host は Redis の IP アドレス、port はポート、database はデータベースです。

エンギンクス

nginx.conf は、

アップストリームとは、構成サーバー リストを意味します。この例では、ポート 8080 と 9999 を持つ 2 つの tomcat が起動されます。

proxy_pass はプロキシ サーバーを構成することを意味します。

この構成は、ローカル (192.168.0.113) のポート 80 をリッスンし、ラウンドロビン方式で 8080 および 9999 の Tomcat サーバーに要求を転送することを意味します。

レディス

Redis は特別な設定を必要とせず、起動するだけです。

3. テスト

Redis サービス、2 つの Tomcat サーバー、および Nginx サーバーを順番に起動します。

2 つのサーバーの sessionId が一致しているかどうかを確認するために、Tomcat の起動ページにマークを追加します。

/webapps/ROOT/index.jsp:

IV. 結果

F5 キーを押してページを更新してもポートに対応するページに切り替えることができない場合は、ブラウザのキャッシュが原因である可能性があります。

解決策: キャッシュをクリアして更新、Alt+F5

この時点で、複数の Tomcat サービスが継続的にポーリングしており、sessionId が一貫していることがわかります。

次に、Redis デスクトップ管理ツールを使用して情報を表示します。

セッション情報が管理のためにRedisに引き渡されていることがわかります。

成功を達成する。

5. デメリット

この方法はTomcatコンテナに依存します。ミドルウェアをJettyなどに置き換えた場合は動作しません。

より良い実装方法もあります: Spring Session + Redis

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Windows で負荷分散に Nginx+Tomcat を使用するための完全な手順
  • Nginx/Httpd リバース プロキシ Tomcat 設定チュートリアル
  • Nginx/Httpd ロードバランシング Tomcat 設定チュートリアル
  • Nginx 経由で Tomcat9 クラスターを構築し、セッション共有を実現する
  • Docker を使用して nginx で tomcat クラスターを構築する方法 (画像とテキスト付き)
  • Zabbix を使用して Nginx/Tomcat/MySQL を監視する方法の詳細なチュートリアル
  • vue プロジェクトを nginx/tomcat サーバーにデプロイする実装
  • Nginx+Tomcat 高性能負荷分散クラスタ構築チュートリアル
  • Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

<<:  MySQLは集計関数を使用して単一のテーブルをクエリします

>>:  Vueリスナーの使用例の詳細な説明

推薦する

Nginx+SpringBoot による負荷分散の実装例

負荷分散の概要Nginx の負荷分散実装を紹介する前に、負荷分散の分類について簡単に説明します。負荷...

CSSアニメーションがJSによってブロックされるかどうかについての簡単な議論

CSS のアニメーション部分は JS によってブロックされますが、transform のアニメーショ...

MySQL フェイルオーバー ノート: アプリケーション対応設計の詳細な説明

1. はじめに周知のように、データベース ミドルウェアの読み取り/書き込み分離のアプリケーション シ...

ftp は SSH 経由で Linux にリモート接続します

まず Linux に ssh をインストールします。例として Centos を使用します。ポータル:...

JavaScript データ プロキシとイベントの詳細な分析

目次データブローカーとイベントObject.defineProperty メソッドのレビューデータブ...

MySQLの構文、特殊記号、正規表現の詳細な説明

Mysql でよく使用される表示コマンド1. 現在のデータベース サーバー内のデータベースの一覧を表...

MySql テーブル内の行を削除する実用的な方法

まず、どのフィールドまたはフィールドの組み合わせがデータ行を一意に識別できるかを決定する必要がありま...

MySQLにインデックスを追加しても効果がないいくつかの状況について簡単に説明します。

インデックスを追加すると、クエリの効率が向上します。インデックスを追加するということは、ドキュメント...

MySQL インストール プロンプト「詳細なヘルプについては NET HELPMSG 3534 と入力してください」の解決方法

今日、MySQL をインストールすると次のエラー メッセージが表示されます。 かなり長い時間ネットで...

純粋な CSS3 マインドマップ スタイルの例

マインドマップ彼はおそらく次のように見えるでしょう: インターネット上の実装のほとんどは d3.js...

ウェブフォーム送信方法の詳細な概要

まず、フォームを送信するいくつかの方法を見てみましょう。 1. <!--一般的な送信ボタン--...

複数のパッケージソースから同時にパッケージをロードするようにnpmを設定する方法

目次1. ローカルストレージを構築する2. npmパッケージを作成し、プライベートリポジトリにアップ...

クールなバーコードエフェクトの作り方を教えます

声明:この記事では、Web ページ制作技術を使用して問題を包括的に解決するという考え方を反映して、W...

JS配列インデックス検出におけるデータ型の問題の詳細な説明

WeChat アプレット プロジェクトを書いていたとき、その中に「都市選択」機能がありました。作者は...

Vue で動的パラメータと計算プロパティを使用する方法

1. 動的パラメータ2.6.0 以降では、角括弧で囲まれた JavaScript 式をディレクティブ...