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リスナーの使用例の詳細な説明

推薦する

Vueは双方向データバインディングを実装します

この記事の例では、双方向データバインディングを実装するためのVueの具体的なコードを参考までに共有し...

Dockerイメージの作成とプロジェクト全体のワンクリックパッケージングとデプロイ

一般的な Dockerfile 命令の紹介命令説明するから新しいイメージが構築される基となるイメージ...

HTML5+CSS3 ヘッダー作成例と更新

前回、私たちは 2 つのヘッダー レイアウト (フレックスボックス 1 つとフロート 1 つ) を考...

HTMLでカメラを読み込む方法

効果図: 全体的な効果: ビデオ読み込み中: 写真:ステップ1: HTML要素を作成するまず、HTM...

HTMLの基本構造を包括的に理解する

HTML入門ハイパーテキスト マークアップ言語: ハイパーテキスト マークアップ言語ハイパーテキスト...

MySQL 5.7 で my.ini ファイルが見つからない場合の解決策

my.ini とは何ですか? my.ini は、MySQL データベースで使用される設定ファイルです...

JavaScript 関数のカリー化

目次1 関数カリー化とは何ですか? 2 カレーの役割と特徴2.1 パラメータの再利用2.2 早期復帰...

ブラウザタブの左端に表示されるウェブサイトのアイコンを設定します

この文の目的は何ですか?コードをコピーコードは次のとおりです。 <link rel="...

MYSQL から MARIADB へのプロジェクト移行に関するチュートリアル

データベース (MySQL) を準備します。すでに MySQL をお持ちの場合は、これを無視できます...

画像ソーシャルネットワーキングサイトのUIアプリケーションの比較分析(図)

私たちの生活、仕事、勉強において、ソーシャル ネットワークは徐々に将来のインターネット発展のトレンド...

実用的なウェブオンラインツール12選

1.ファビコン.cc ico アイコンの Web サイトをオンラインで作成するには、画像をアップロー...

IDEA Maven プロジェクトで Tomcat をデバッグ モードで実行する詳細なチュートリアル

1. pom.xmlに次の依存関係を追加します。 <依存関係> <groupId&...

CSS でハートを描く 3 つの方法

以下では、CSS を使用してハートの形を描く 3 つの方法を紹介します。実装プロセスは非常にシンプル...

Dockerはnextcloudを使用してプライベートBaiduクラウドディスクを構築します

突然、ドキュメントの保存と共同作業のためのプライベート サービスを構築する必要がありました。多くの場...

MySQL 8のパスワードを忘れた場合のベストな対処法の簡単な分析

序文MySQL に精通している読者は、MySQL が非常に迅速に更新されることに気付くかもしれません...