UltraMonkey-L7 URL モジュール 管理者マニュアル 【v1.0.x対応版】 ================================================================================ [変更履歴] 2013.10.7 [v1.0] 初版 ================================================================================ 1 前提条件 1.1 URL モジュールについて 2 l7vsadm コマンドの説明 2.1 URL モジュールのオプション説明 3 l7vsadm 設定例 3.1 設定方法について 3.2 基本的な振り分け設定(IPv4, IPv6混在) 3.3 X-Forwarded-For フィールドの挿入 3.4 複数 RealServer の登録 3.5 留意点 4 サーバ監視設定ツールの説明 4.1 設定ファイルへの記述について 4.2 記述例 4.3 設定反映 ================================================================================ 1 前提条件 -------------------------------------------------------------------------------- 1.1 URL モジュールについて UltraMonkey-L7 URL モジュールは、UltraMonkey-L7 のプロトコル処理部を 外部モジュール化したものです。 HTTP リクエストヘッダ(リクエストライン)の URI 文字列にしたがって RealServer への振り分けを行う機能を提供します。 なお、プロトコル処理部について詳しくは UltraMonkey-L7 管理マニュアル(3.1.x 対応版) を参照願います。 ================================================================================ 2 l7vsadm コマンドの説明 -------------------------------------------------------------------------------- 2.1 URL モジュールのオプション説明 ・指定必須パラメータオプション --pattern-match(-P) リクエストを一意の RealServer に送信するための URL 文字列を設定する。 文字は英数字 127 字以内で正規表現(※)が使用可能。 ここで指定した文字列が HTTP リクエストヘッダ(リクエストライン)の URI 部分に 含まれているかがチェックされる。 (例: --pattern-match "^/images/.*") ※記述可能な正規表現は Perl の規則に従います。 詳しくは、インストールした Boost のバージョンにおける ドキュメント「Perl Regular Expression Syntax」を参照ください。 (例えば以下 URL など) http://www.boost.org/doc/libs/1_54_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html --end-point(-RS) リクエストの送信先である RealServer のアドレスとポート番号を指定する。 RealServer は半角スペースで区切ることで複数指定することが可能。 本オプションは --pattern-match(-P) オプションとペアで設定する必要がある。 ・指定可能パラメータオプション --forwarded-for(-F) Client のIPアドレスを X-Forwarded-For ヘッダフィールドに挿入するよう指示する。 デフォルト(指定しない場合の)動作は挿入しない。 --sorry-uri URI文字列(-S) SorryServer 接続時に取得する URI をシングルクォーテーション(')で囲んで 指定する。 --statistic(-c)   ・HTTP リクエスト総数   ・HTTP GETリクエスト総数   ・HTTP POSTリクエスト総数   上記の三つ統計情報の統計を行うよう指定する。  設定可能な値は、0または1で、1を指定すると情報を統計して、0を指定すると 情報を統計しない。指定しない場合のデフォルトは0となる。 ================================================================================ 3 l7vsadm 設定例 -------------------------------------------------------------------------------- 3.1 設定方法について URL モジュールは HTTP リクエストヘッダ(リクエストライン)の URI 部分に 指定した文字列が存在する場合に指定されたスケジューラに従って 各 RealServer へ振り分けを行います。 URL モジュールは必須オプションとして、文字列とそれに対応する 振り分け先 RealServer を設定する必要があります。 3.2 基本的な振り分け設定(IPv4, IPv6混在) # l7vsadm -A -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 -s rr # l7vsadm -a -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 -r 192.168.200.101:80 # l7vsadm -a -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 -r [fd7e:8e93:755c:300::110]:80 以上の設定にて、リクエスト URL の先頭に "/images/" が含まれる場合は 192.168.200.101:80 へ、 それ以外の場合は [fd7e:8e93:755c:300::110]:80 へリクエストを振り分けます。 3.3 X-Forwarded-For フィールドの挿入 Client のIPアドレスを X-Forwarded-For フィールドに挿入する場合には、 以下のように設定します。 # l7vsadm -A -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 --forwarded-for -s rr # l7vsadm -a -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 -r 192.168.200.101:80 # l7vsadm -a -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 -r [fd7e:8e93:755c:300::110]:80 3.4 複数 RealServer の登録 以下のように、指定した文字列に対して複数の RealServer を設定することも可能です。 # l7vsadm -A -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 192.168.200.102:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 -s rr # l7vsadm -a -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 192.168.200.102:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 \ -r 192.168.200.101:80 # l7vsadm -a -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 192.168.200.102:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 \ -r 192.168.200.102:80 # l7vsadm -a -t 192.168.8.100:80 -m url \ -P "^/images/.*" -RS 192.168.200.101:80 192.168.200.102:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 \ -r [fd7e:8e93:755c:300::110]:80 この設定では、リクエスト URL の先頭に "/images/" という文字列が含まれる場合は スケジューラ( ここでは RoundRobin ) にしたがって 192.168.200.101:80 または 192.168.200.102:80 へリクエストを振り分けます。 それ以外の場合は [fd7e:8e93:755c:300::110]:80 へ振り分けます。 3.5 留意点 リクエスト URL と、指定した文字列とのマッチングは --pattern-match(-P) オプションの記述順に行われます。 前項の例では、まず "^/images/.*" とマッチングを行い、 合致しなければ続いて ".+" とマッチングを行うことになります。 また、 --end-point(-RS) オプションにより設定した以外の RealServer を 仮想サービスへ登録しても、その RealServer へはリクエストは 振り分けられないのでご注意ください。 ================================================================================ 4 サーバ監視設定ツールの説明 -------------------------------------------------------------------------------- 4.1 設定ファイルへの記述について URL モジュールの設定は3章で示したコマンドによる設定方法と サーバ監視設定ツール( l7directord )による設定ファイル( l7directord.cf )を使用した 設定方法があります。 ここでは l7directord.cf への設定記述方法を説明します。 なお、各々について記載のないパラメータに関しては省略時の値が 使用されるものとします。 ※l7directord.cf の記法および使用する各パラメータの意味に関しては UltraMonkey-L7 ( Version 3.1.0 以降 ) の管理マニュアルを参照願います。 4.2 記述例 1) 基本的な振り分け設定(IPv4, IPv6混在) リクエスト URL の先頭に "/images/" という文字列が含まれる場合は 192.168.200.101:80 へ。 それ以外の場合は [fd7e:8e93:755c:300::110]:80 へ振り分けを行います。 module パラメータ行は1行で記述すること、 --pattern-match(-P) オプションに続く URL 文字列はダブルクォーテーション( " )で囲うことに注意してください。 virtual = 192.168.8.100:80 real = 192.168.200.101:80 real = [fd7e:8e93:755c:300::110]:80 scheduler = rr module = url -P "^/images/.*" -RS 192.168.200.101:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 2) X-Forwarded-For フィールドの挿入 Client のIPアドレスを X-Forwarded-For フィールドに挿入する場合は module パラメータに --forwarded-for(-F) オプションを記述します。 virtual = 192.168.8.100:80 real = 192.168.200.101:80 real = [fd7e:8e93:755c:300::110]:80 scheduler = rr module = url -P "^/images/.*" -RS 192.168.200.101:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 --forwarded-for 3) 複数 RealServer の登録 指定した URL 文字列に対して複数の RealServer を登録する場合は、 --end-point(-RS) オプションにスペース区切りで複数の RealServer を 記述します。 virtual = 192.168.8.100:80 real = 192.168.200.101:80 real = 192.168.200.102:80 real = [fd7e:8e93:755c:300::110]:80 scheduler = rr module = url -P "^/images/.*" -RS 192.168.200.101:80 192.168.200.102:80 -P ".+" -RS [fd7e:8e93:755c:300::110]:80 4.3 設定反映 l7directord.cf を編集後、保存し、 l7directord を起動すれば振り分け設定が l7vsd に反映されます。 ================================================================================