Return-Path: X-Original-To: apmail-httpd-cvs-archive@www.apache.org Delivered-To: apmail-httpd-cvs-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 52EE29D85 for ; Mon, 12 Dec 2011 05:41:48 +0000 (UTC) Received: (qmail 46964 invoked by uid 500); 12 Dec 2011 05:41:46 -0000 Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org Received: (qmail 46406 invoked by uid 500); 12 Dec 2011 05:41:40 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 46399 invoked by uid 99); 12 Dec 2011 05:41:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 Dec 2011 05:41:39 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,NORMAL_HTTP_TO_IP X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 12 Dec 2011 05:41:28 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 3C949238899C; Mon, 12 Dec 2011 05:41:06 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r1213144 - /httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy_balancer.xml.ja Date: Mon, 12 Dec 2011 05:41:06 -0000 To: cvs@httpd.apache.org From: kawai@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111212054106.3C949238899C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kawai Date: Mon Dec 12 05:41:05 2011 New Revision: 1213144 URL: http://svn.apache.org/viewvc?rev=1213144&view=rev Log: Update translation. English Revision: 1213141 Submitted by: INOUE Seiichiro Reviewed by: OKANO Takayoshi , kawai Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy_balancer.xml.ja Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy_balancer.xml.ja URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy_balancer.xml.ja?rev=1213144&r1=1213143&r2=1213144&view=diff ============================================================================== --- httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy_balancer.xml.ja [utf-8] (original) +++ httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy_balancer.xml.ja [utf-8] Mon Dec 12 05:41:05 2011 @@ -1,7 +1,7 @@ - + +
BALANCER_SESSION_STICKY
+
+

現在のリクエストに使われる stickysession 値になります。 + スティッキーセッションのためのクッキー名もしくはリクエストパラメータ名です。

+
+ + +
BALANCER_SESSION_ROUTE
+
+

現在のリクエストをパースして得られる route 値です。

+
+ + +
BALANCER_NAME
+
+

現在のリクエストが使うバランサ名です。balancer://foo + のような値です。

+
+ + +
BALANCER_WORKER_NAME
+
+

現在のリクエストが使うワーカー名です。http://hostA:1234 + のような値です。

+
+ + +
BALANCER_WORKER_ROUTE
+
+

現在のリクエストが使うワーカーの route 値です。

+
+ + +
BALANCER_ROUTE_CHANGED
+
+

セッションルートとワーカールートが一致しない時 (BALANCER_SESSION_ROUTE != BALANCER_WORKER_ROUTE) + あるいは、セッションがまだルートを確立していない時、値が 1 になります。 + スティッキーセッションを使う時、ルートの更新をクライアントに送る必要があるかを + 判断するためにこの環境変数を使えます。

+
+ + + + +
バランサマネージャのサポートを有効にする

このモジュールは mod_status のサービスを 必要とします。 @@ -286,7 +403,7 @@ candidate lbstatus -= total factormod_status と mod_proxy_balancer をサーバに組み込まなければなりません。

-

foo.com ドメインのブラウザからロードバランサ管理機能を +

example.com ドメインのブラウザからロードバランサ管理機能を 使えるようにするには、次のようなコードを httpd.conf に追加します。

@@ -295,7 +412,7 @@ candidate lbstatus -= total factor Order Deny,Allow
Deny from all
- Allow from .foo.com
+ Allow from .example.com
</Location>
@@ -304,4 +421,106 @@ candidate lbstatus -= total factor
+
+ ロードバランサのスティッキネスの詳細 +

クッキーをもとにスティッキネスを使う場合、どのバックエンドに割り振るべきか + を決めるクッキーの名前を指定する必要があります。 + クッキー名は ProxyPass または + ProxySet のいずれか + に付与する stickysession 属性で設定します。 + クッキー名は大文字小文字を区別します。 + バランサはそのクッキーの値を取り出し、その値に一致する route 値の + ワーカーを探します。 + routeProxyPass + または ProxySet + のいずれかに設定しなければいけません。 + クッキーはバックエンドによって設定されるか、あるいは + 上記の のように Apache Web サーバ自身 + によって設定されます。

+

バックエンドの中の一部は少し異なる形式のスティッキネスクッキーを使います。 + たとえば Apache Tomcat がそうです。Tomcat は自身のインスタンス名を + セッション ID のクッキーの最後に付け加えます。この時、セッション ID + との区切り文字にドット (.) を使います。 + このため、Apache Web サーバがドットをスティッキネスクッキー値の中に見つけると、 + route を探すためにドット以降の部分のみを使うようにします。 + Tomcat 側で自身のインスタンス名を設定するには、Tomcat の設定ファイル + conf/server.xml の中の jvmRoute 属性に + 指定する必要があります。値はそれぞれの Tomcat に接続するワーカーの + route 値と一致させます。 + Tomcat およびサーブレットベースの Java Web アプリサーバが一般に使う + セッションクッキーの名前は JSESSIONID (すべて大文字) です。 + この名前は設定により変更も可能です。

+

スティッキネスを実装するふたつめの手段は URL エンコーディングです。 + Web サーバはリクエストの URL の中からクエリパラメータを探します。 + 探すパラメータ名は同じように stickysession 属性で指定します。 + パラメータ値と一致する route 値のワーカーを探します。 + レスポンスに含まれるすべての URL リンクを探しだし書き換えるのは簡単ではないので、 + 一般にそれぞれのリンクにクエリパラメータを付け加えるのは、 + そのコンテンツを生成したバックエンドの仕事です。 + 時には、mod_substitute を使って Web サーバにこの書き換えを + させるのが可能な場合もあります。 + ただし、パフォーマンスを落とす可能性があります。

+

Java 標準は URL エンコーディングを少し異なる形で実装します。 + URL のパス情報をセミコロン (;) で区切って + セッション ID を付け加えます。 + クッキーの場合と同じように、 Apache Tomcat はこのパス情報に + jvmRoute の設定値を含めます。 + Apache にこの種のパス情報を見つけさせるには、 + ProxyPass あるいは + ProxySet の + scolonpathdelimOn にします。

+

最後に、クッキーと URL エンコーディングの両方が指定できることを示します。 + 次の例のように、クッキー名と URL パラメータ名を垂直バー (|) + で区切って指定します:

+ + ProxyPass /test balancer://mycluster stickysession=JSESSIONID|jsessionid scolonpathdelim=On + <Proxy balancer://mycluster>
+ BalancerMember http://192.168.1.50:80 route=node1
+ BalancerMember http://192.168.1.51:80 route=node2
+ </Proxy>
+
+

もし同じリクエストが、クッキーとリクエストパラメータの両方のルーティング情報を + 提供した場合、リクエストパラメータのほうが使われます。

+
+ +
+ ロードバランサのスティッキネスのトラブルシューティング +

もしアプリのセッションが失われてユーザが再ログインしなければいけないなど + スティッキネス関連のエラーに遭遇したら、 + この原因はバックエンドの応答に支障があったせいか、 + あるいは設定ミスによるものかを最初に切り分けたいでしょう。 + バックエンドの安定性に関して起きうる問題を見つけるには、 + Apache のエラーログにプロキシエラーのメッセージがないか確認してください。

+

設定が正しいかを確認するには、最初にスティッキネスを + クッキーと URL エンコーディングのどちらで行っているかを確認してください。 + 次に、LogFormat を変更して + アクセスログに適切なデータが残るようにするとよいでしょう。 + 次のフィールドが便利です:

+
+
%{MYCOOKIE}C
+
MYCOOKIE という名前のクッキーの値。 + この名前は stickysession 属性の指定値と同じはずです。
+
%{Set-Cookie}o
+
これによりバックエンドがセットするクッキーをログに出せます。 + バックエンドが期待するセッションクッキーをセットしているかと、 + どんな値がセットされているかを追跡できます。
+
%{BALANCER_SESSION_STICKY}e
+
ルーティング情報を決めるために使われたクッキー名もしくは + リクエストパラメータ名。
+
%{BALANCER_SESSION_ROUTE}e
+
リクエスト内に見つかった route 値の情報
+
%{BALANCER_WORKER_ROUTE}e
+
選択されたワーカーの route 値
+
%{BALANCER_ROUTE_CHANGED}e
+
リクエストの route 値がワーカーの route 値と異なる場合に + 1 になります。つまり、リクエストはスティッキーとして + 処理されていません。
+
+

セッションが失われる原因でよくあるものは、セッションタイムアウトですが、 + これは通常バックエンドのサーバで変更可能です。

+

ログレベルを debug 以上に設定すると、 + バランサはスティッキネス動作の詳細な情報をエラーログに書き出します。 + これはスティッキネスの問題のトラブルシューティングする簡単な手法ですが、 + 高負荷な本番サーバではログの分量が膨大になってしまうかもしれません。

+