ホームページ  >  記事  >  バックエンド開発  >  Nginx+Tomcat7 (tomcat6)+Memcached クラスター セッション共有

Nginx+Tomcat7 (tomcat6)+Memcached クラスター セッション共有

WBOY
WBOYオリジナル
2016-08-08 09:30:59990ブラウズ

Nginx+Tomcat7+Memcached クラスターセッション共有

原則:

主にオープンソース Tomcat プラグイン memcached-session-manager (以下 msm と呼びます) を使用して、Tomcat の元のセッション ストレージ メカニズムを変更し、セッション ストレージを配置します分散キャッシュ memcache に保存することで、セッションの共有を実現します。

ダウンロード

1. nginx をダウンロードします

2. tomcat7 をダウンロードします (この記事では、tomcat7 のセッション共有について説明します。tomcat6 の場合、構成は失敗し、jar パッケージを置き換える必要があります (memcached-session-manager-tc6) )

3. memcached をダウンロードします

上記のファイルは圧縮パッケージに含まれています。

説明

1. 2 つのトムキャットはコピーされているため、基本的には同じなので、ここでは詳しく説明しません。

2. apache-tomcat-7.0.57-2 8081

3.

apache-tomcat-7.0.57-3アクセスポート 8082 4. 8081 の下の webapps->ROOT の test.jsp には、セッションに入力される値があり、キーは name です。逆に、この値は 8082 でのみ取得されます。この値が 8082 で取得できれば、セッション共有の設定は成功です。 (この手順では nginx クラスターを構成する必要はありません)

構成

1. 次の jar パッケージを tomcat lib ディレクトリに配置します

2. ここで、次の構成を context.xml ファイルに追加します。

memcachedNodes

は、memcached ノード を入力します。 複数のノードは ”,” で区切ることができます (例: :n1:localhost:11211,n) 2:ローカルホスト: 11212管理者タグ 属性の説明は以下に書いてあるので理解できます。 3. Tomcat -> webapps ここでは多くは言いませんが、非常に簡単です。

4. nginx は nginx.conf で完全に設定されています。非常に簡単です。

アクセスを開始します

1. 2つのTomcatを起動します

2. nginxを起動するここにあるディスクはEドライブです。

3. http://localhost/test.jsp にアクセスします

4. 連続して数回更新します

8081 と 8082 の両方が Nginx+Tomcat... という単語を出力できれば、設定は成功です。 。

マネージャーラベル属性の説明

1.className 必須クラス名: de.javakaffee.web.msm.MemcachedBackupSessionManager

2.memcachedNodes

必須

memcached ノード

3.スティッキーオプションS

Sessionメソッドがstickyかnon-stickyであるかを定義します。複数のtomcatがnon-viscosityオプションを使用する必要がある場合、デフォルトはTrueになります。 使用のみ非スティッキー session

の場合、デフォルト値は nonenone: ロックしない session
all: session
は要求された終了まで常にロックされます 自動: 読み取り専用リクエストの場合、
session
はロックされません。非読み取り専用リクエストの場合、session
はロックされますuriPattern:: 正規表現を使用してリクエスト uri と照合し、一致するもののみがロックされます。
5.requestUriIgnorePattern Optionalこの属性は、

Sessionを元に変更できないリクエストの正規表現です。 css、javascript、

画像などの静的ファイルが同じTomcatと同じアプリケーションコンテキストによって提供される場合、これらのリクエストはmemcached-session-managerも通過します。ただし、これらのリクエストは httpセッション内で変更されることはほとんどないため、Sessionのバックアップをトリガーする必要はありません。したがって、これらの静的ファイルは Session バックアップをトリガーする必要がなく、この属性定義を使用できます。この属性は javaregex の通常の仕様に準拠する必要があります。 例: ".*.(png|gif|jpg|css|js)$"

6.sessionBackupAsync オプションのは、SessionMemcachedに非同期的に保存するかどうかを指定します。 tru​​eに設定すると、backupThreadCountの設定が有効になり、falseに設定すると、sessionBackupTimeoutで設定された有効期限が有効になります。

7.backupThreadCount

オプション Sessionを非同期で保存するために使用されるスレッドの数、(if sessionBackupAsync="true ")。デフォルト値 cpuのコア数です。

8.sessionBackupTimeout

オプションセッションのバックアップにかかる時間を設定します。操作が時間を超えると、保存は失敗します。このプロパティは、sessionBackupAsync="false"の場合にのみ機能します。デフォルト 100ms

拡張された

セッション有効時間設定

セッション有効時間設定は、通常の Web プログラムと同じです。 web.xml に次のコードを追加します。

<

session-config> t;

session-config> 赤色の部分は、分単位のタイムアウトです。 注: タイムアウト設定に応じて、複数の Web プログラムがセッションを共有します。 1. 複数の Web プログラムのセッション有効期間の設定が一貫しており、有効期限が同じです。 2. 複数の Web プログラムのセッション有効時間の設定に一貫性がない場合、設定された時間のうち最も短いものが優先されます。

セッション監視 Web に次のコードを追加します。net/detail/kevon_sun/8371071 上記は、Nginx+Tomcat7 (tomcat6)+Memcached クラスターのセッション共有を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。