From tateishi.katsuyuki @ oss.ntt.co.jp Thu Aug 4 17:44:25 2011 From: tateishi.katsuyuki @ oss.ntt.co.jp (TATEISHI Katsuyuki) Date: Thu, 04 Aug 2011 17:44:25 +0900 (JST) Subject: [Ultramonkey-l7-develop 711] Re: =?iso-2022-jp?b?dWx0cmFtb25rZXktbDcgVjMgGyRCJE4/NzUsJWIbKEI=?= =?iso-2022-jp?b?GyRCJTglZSE8JWszK0gvJEskRCQkJEYbKEI=?= In-Reply-To: <4E38F711.1010909@nttcom.co.jp> References: <4E38F711.1010909@nttcom.co.jp> Message-ID: <20110804.174425.568956462776812355.tateishi.katsuyuki@oss.ntt.co.jp> 竹田さま、 立石と申します。よろしくお願いします。 竹田 健二 -san wrote: > 現在、UltraMonkey-L7 V3の新規モジュールとして、 > V2において実装されていたURLモジュールを新たに追加したいと考えています。 > 詳細については皆様の方がよくご存知だと思いますが、 > 改めて仕様(添付ファイル.一応パスつきにしました.パス:umv3)をご確認おねが > い致します。 > 仕様や今後の開発の進め方等、ご意見をいただければと思います。 それほど詳しくないのですが、v2 踏襲ということであれば、ざっく りとした仕様としては良いと思います。 細かい点でいくつか気になるのが、 1. キーワードはリクエストのどこを捜査するのか(リクエスト行 (PATH, パラメータ) or ヘッダ全体 or (POSTなどの)ボディを含 む)。 マニュアルを見る限りではv2ではヘッダの「リクエスト行」と 「Host フィールド」それぞれに専用のオプションが用意されて います。 いただいた図においても、www.YYY.com という文字列で振り分け るのであれば、Hostフィールドを見なければなりませんし、図に はありませんが、たとえば 「http://www.YYY.com/path/to/contents.html」というリクエス トの /path 部分で振り分けたいのであればリクエスト行を見な ければなりません。 2. 複数の VirtualService のキーワードにマッチした場合、どの Virtual Service にいくのか。(設定ファイルに書かれた上のほ うだけに振り分けられる、とか) 3. 継続的HTTPコネクション(HTTP KeepAlive)における連続したリク エストをどう扱うか。 v2 は HTTP リクエスト単位を意識していないので、HTTP KeepAliveが有効な環境では、一度 URL モジュールでリアルサー バが決定してしまうと、同一の TCP セッション内のリクエスト はすべて同一のサーバに振られていたように記憶しています。こ れは望ましい動作ではないと思いますので、v3 ではリクエスト ごとに正しい宛先に振るようにすべきだと思います。 といったあたりです。 あと、これはURLモジュールというよりも本体側の仕様なのですが、 モジュールを単体でビルドできるようにしておくと、独自のモジュー ルを作りたい人が嬉しいのではないかと思います。 具体的にはモジュールのビルドに必要なヘッダファイル、ライブラ リをシステムにインストールするように変更することを意図してい ます。 現状ではヘッダファイルや(スケジューラ/プロトコルモジュール以 外の)ライブラリはインストールされないので、モジュールのビルド には展開したソースコード(とビルドしたライブラリ)が必要です。 たとえば、UltraMonkey-L7 の RPM をインストールした環境に独自 モジュールを追加で使おうとして、インストールされている l7vsd と異なるバージョンのソースツリーでモジュールをビルドしてしまっ た場合等、障害時の切り分け等でドツボにはまる可能性があります。 ただ、モジュールのビルドに必要なライブラリの切り出し、ビルド 関連ファイルの修正が必要なのでそれなりの手間がかかります が・・・ -- TATEISHI Katsuyuki