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

推薦する

ElementUIはドロップダウンオプションと複数選択ボックスのサンプルコードを実装します

目次ドロップダウン複数選択ボックスアップグレード - すべてのオプションを追加改訂と改善を求める製品...

Centos7環境でMySQL 5.6のインスタンスを複数作成する方法の詳細な説明

この記事では、CentOS 7 環境で MySQL 5.6 の複数のインスタンスを作成する方法につい...

Ubuntu環境にAnaconda3をインストールするための完全な手順

目次Anaconda の紹介1. ダウンロード1.1 インストールパッケージを保存するフォルダを作成...

ネストされた HTML ページの使用例 (フレームセットの使用)

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

Linux IO 多重化 epoll ネットワーク プログラミング

序文この章では、基本的な Linux 関数と epoll 呼び出しを使用して、Linux 上で実行で...

Ubuntu 16.04 に Docker と nvidia-docker をインストールするための詳細なチュートリアル

目次DockerのインストールNvidia-docker のインストールDockerのインストール1...

Vue 実践における実用的な小さな魔法のまとめ

初回の読み込みを高速化できるルートの遅延読み込みをどうして忘れられるでしょうか?ルーティングの遅延読...

システム外のフォント参照とトランジション効果

コードをコピーコードは次のとおりです。 <span style="font-fami...

CSS3を使用してオンラインライブ放送に似たキューアニメーションを実装する方法

以前、グループの友人が質問しました。つまり、ミニプログラムでユーザーがオンラインになったときに、ライ...

Vue.set() と this.$set() の使い方と違い

開発に Vue を使用する場合、次のような状況に遭遇することがあります。Vue インスタンスを生成し...

JavaScript における clientWidth、offsetWidth、scrollWidth の違い

1. コンセプトこれらはすべて Element の属性であり、要素の幅を示します。 Element....

JavaScript のカンマ式が含まれている場合について

JavaScript の if ステートメントで英語のカンマ「,」が表示されることがあります。これは...

JDBC を使用して MySQL を操作するための簡単な分析では、Class.forName("com.mysql.jdbc.Driver") を追加する必要があります。

導入データベースに接続するためにJDBCを使用することに慣れている場合は、データベースに接続するため...

Centos7 DockerでNginxファイルを変更するプロセスの詳細な説明

1. docker に nginx をインストールします。 docker に Nginx をインスト...

Dockerコンテナが停止できない問題の解決方法

解決策は次のとおりです。 1. コンテナを強制削除する docker rm -f ジェンキンス2. ...