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.MemcachedBackupSessionManager2.memcachedNodes
必須
memcached ノード
3.スティッキーオプションS
Sessionメソッドがstickyかnon-stickyであるかを定義します。複数のtomcatがnon-viscosityオプションを使用する必要がある場合、デフォルトはTrueになります。 使用のみ非スティッキー session
の場合、デフォルト値は nonenone: ロックしない session
all: session は要求された終了まで常にロックされます 自動: 読み取り専用リクエストの場合、
sessionはロックされません。非読み取り専用リクエストの場合、session
はロックされますuriPattern:
5.requestUriIgnorePattern Optionalこの属性は、
Sessionを元に変更できないリクエストの正規表現です。 css、javascript、
画像などの静的ファイルが同じTomcatと同じアプリケーションコンテキストによって提供される場合、これらのリクエストはmemcached-session-managerも通過します。ただし、これらのリクエストは httpセッション内で変更されることはほとんどないため、Sessionのバックアップをトリガーする必要はありません。したがって、これらの静的ファイルは Session バックアップをトリガーする必要がなく、この属性定義を使用できます。この属性は javaregex の通常の仕様に準拠する必要があります。 例: ".*.(png|gif|jpg|css|js)$" 6.sessionBackupAsync オプションのは、SessionをMemcachedに非同期的に保存するかどうかを指定します。 trueに設定すると、backupThreadCountの設定が有効になり、falseに設定すると、sessionBackupTimeoutで設定された有効期限が有効になります。 オプション Sessionを非同期で保存するために使用されるスレッドの数、(if sessionBackupAsync="true ")。デフォルト値
はcpuのコア数です。 オプションセッションのバックアップにかかる時間を設定します。操作が時間を超えると、保存は失敗します。このプロパティは、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 チュートリアルに興味のある友人に役立つことを願っています。