前のトピック: RPL - イベント レプリケータ

次のトピック: ゲートウェイ


URLSW - URL ポート スイッチ

最新バージョン: 2.0.2-1

URLSW: Url ポート スイッチ

早見表

カタログ

システム

カテゴリ

スイッチ

ユーザ ボリューム

なし

最小 メモリ

96M

OS

Linux

制約

なし

質問/コメント

フォーラムで質問する

機能の概要

URLSW は、アプライアンス境界上で正規表現として定義されたルールに対するリクエスト URL またはリクエスト ヘッダのマッチングに基づき、HTTP リクエストを別の出力へ配信するスイッチです。 URLSW は、複数の Web またはアプリケーション サーバ アプライアンスを持つアプリケーションで使用され、それらの中で HTTP リクエストを柔軟に配信することができます。 URLSW はこれに類似した PS8 と同様に動作しますが、tcp/udp ポートの代わりに HTTP リクエストを解析するなど、よりハイレベルとなっています。

また、URLSW には埋め込みヘルス チェッカがあります。 ヘルス チェッカは、接続された出力端子を定期的にポーリングし、サーバがリクエストを処理する準備ができているかどうかを判断します。 チェックされたいずれかのサーバが機能しなくなると、URLSW は他の最も適切に動作しているサーバへリクエストをリダイレクトし、機能していないサーバへのリクエスト フローを自動的に無効にします。 以前に動作を停止していたサーバが正常状態に戻ると、ヘルス チェッカがそれを自動検出し、リクエストの受信を続行します。

スイッチはカスケード接続が可能です。定義された正規表現に一致しない受信トラフィックは、変更せずに aux 端子を介して転送されます。 outX および aux 端子上で受信したすべての受信トラフィックは、入力端子を介して戻ってきます。

URLSW は、通常、アプリケーション内の別のアプライアンスへの受信トラフィックをルーティングするために使用されます。

リソース

リソース

最小

最大

デフォルト

テスト済み

CPU

0.1

2

0.1

2

メモリ

96 MB

160 MB

96 MB

128MB

帯域幅

1 Mbps

2 Gbps

250 Mbps

1800 Mbps

端子

名前

方向

プロトコル

説明

in

in

HTTP

共通入力。 受信したトラフィックは、定義された正規表現に対する URL またはヘッダのマッチングに基づき、出力の 1 つへ転送されます。

ctl

in

HTTP

正規表現を設定し、出力を有効/無効にし、出力端子の設定および状態を取得するために使用する制御端子。

out1~out8

out

HTTP

設定済み出力。 リクエストは、outX_type および outX_value のプロパティに基づき特定の出力を介して転送されます。 これらの出力の一部やすべてを接続しないでおくことができます。接続されていない出力に転送されたリクエストは破棄されます。

aux

out

HTTP

カスケード出力。 out1~out8 出力のどれにも受信リクエストが転送されない場合、この端子を介して送信されます。 この端子は未接続のままにしておくことができます。

log

out

任意

ログを格納するための CIFS ベースのネットワーク ファイル システムへのアクセス(デバッグ目的)。 接続されたサーバは、匿名のログインを許可し、share という名前の読み取り/書き込み共有アクセス権を持っている必要があります。 使用しない場合、この端子は未接続のままにできます。

mon

out

CCE

パフォーマンスとリソースの使用状況統計を送信します。 使用しない場合、この端子は未接続のままにできます。

全般プロパティ

名前

タイプ

説明

outX_type

文字列

受信リクエストが一致する基準を定義します。このプロパティは、hostname、cookie、url、file type の 4 つのうちから選びます。

  • hostname - リクエストはホスト名によってマッチングされます。 このオプションは、Web サイト コンテンツが個別のサーバに分割され、適切なサーバがホスト名によって選択されているときに有用です。
  • cookie - リクエストは Cookie によってマッチングされます。 このタイプのサーバ選択は、異なるカテゴリの Web サイト ユーザが存在するときに有用になる可能性があります。 例として、次のような状況での使用が考えられます。1. 一般ユーザと管理者/モデレータがいて、そこからのリクエストを別々のサーバによって処理する必要があるとき。2. VIP ユーザ、一般ユーザ、未登録ユーザがいて、負荷が高いケースでリクエストに優先順位を付けるとき。3. 制限されたダウンロード領域。認証されたユーザのみがサーバからダウンロード可能であり、特にこの目的にかなっています。 すべてのケースで、ユーザ リクエストは何らかの Cookie またはその値の存在によって差別化されます。
  • url - リクエストは url の一部を指定することによってマッチングされます。 完全 url 文字列を使用して、送信先を選択します。 url のどの部分でも使用できます。プロトコル(「http://」または「s http://」)、ホストや場所の一部、またはそれらの任意の組み合わせでもかまいません。
  • file type - リクエストはファイル拡張子によってマッチングされます。 異なるサーバが、異なるタイプの静的または動的コンテンツに対応する状況で役立ちます。

デフォルト: hostname

outX_value

文字列

マッチングさせる正規表現。 正規表現の定義は、ここで利用できます。 例:

  • hostname の場合は、「*host1.com, *host.com, img.*.slashdot.org」、
  • cookie の場合は、「*PHPSESSIONID*, GA*」、
  • url の場合は、「http://host1.com/images/*, *://host2.com/*」、
  • file type の場合は、「*.jpg、*.png」です。

デフォルト: (空)
値は大文字と小文字を区別します。

ヘルス チェック プロパティ

名前

タイプ

説明

healthcheck_url

文字列

http_get および http_head のヘルス チェック メソッドを通じてバックエンド Web サーバのヘルス チェックを実行するのに使用される URL。 完全 URL (http://host.name/file/to/check/for.php)または相対パス(/file/to/check/for.php)として指定することができます。 URL として指定されている場合、ヘルス チェックは、Host: ヘッダ内で URL から抽出されたホスト名を使用してヘルス チェックを実行する一方で、HTTP/1.1 プロトコルを使用します。 これは、仮想ホストの使用を許可します。 相対パスとして指定した場合、ヘルス チェックは HTTP/1.0 プロトコルを使用し、このプロパティによって指定されたドキュメントをチェックします。 このプロパティが空の場合、ヘルス チェックは HTTP/1.0 プロトコルを使用して、デフォルト ルート「/」をチェックします。
デフォルト: (空)

healthcheck_agent

文字列

http_get と http_head のヘルス チェック メソッド用のエージェント識別子として使用される文字列。 空の場合、URLSW-health-check が使用されます。
デフォルト: (空)

healthcheck_method

文字列

バックエンド Web サーバのヘルス チェックに使用されるメソッド。

  • tcp_connect - ヘルス チェックは Web サーバのポート 80 への接続を使用して実行されます。 接続が正常に確立された場合、ヘルス チェックは Web サーバが機能しているとみなします。 これは最も速いメソッドで、最も少ないリソースを必要とします。
  • http_head - ヘルス チェックは、HEAD メソッドを使用して healthcheck_url プロパティによって指定されたドキュメントをリクエストします。 これは tcp_connect より遅く、URLSW と Web サーバの両方でより多くのリソースを必要としますが、信頼性は向上します。 Web サーバから受信するステータス コード 2xx または 3xx は、サーバが機能していることを確認します。
  • http_get - ヘルス チェックは、GET メソッドを使用して healthcheck_url プロパティによって指定されたドキュメントをリクエストします。 これはほとんどのリソースを必要とする最も遅いメソッドですが、信頼性は最も高くなります。 Web サーバから受信される 2xx または 3xx のステータス コードは、サーバの稼動を検証します。 healthcheck_regexp プロパティが定義されている場合、ヘルス チェックはすべての HTTP ヘッダおよびサーバ ステータス コードを含めてドキュメントをダウンロードし、healthcheck_regexp 値に対する一致をチェックします。 一致が見つかった場合、バックエンド サーバは機能しているとみなされ、一致が見つからない場合は無効であるとみなされます。

デフォルト: tcp_connect。

healthcheck_regexp

文字列

http_get ヘルス チェック モードで使用するテスト文字列。 短いか一般的な値(たとえば 「OK」)は間違った正の一致の原因になる場合があります。 この文字列は perl の正規表現です。perl の正規表現に関する詳細は、こちらを参照してください。
デフォルト: (空)

healthcheck_interval

整数

バックエンド Web サーバのヘルス チェックの間隔(秒で指定)。
デフォルト: 20 秒。

タイムアウト プロパティ

名前

タイプ

説明

keepalive_timeout

整数

keep-alive 接続のタイムアウト。 その間はクライアントとの keep-alive 接続がサーバによって終了しないタイムアウトを設定します。
デフォルト: 75

client_header_timeout

整数

クライアントがリクエストのヘッダを送信するためのタイムアウト。 この時間の後でクライアントが完全なヘッダを受信しない場合、エラーが返されます。
デフォルト: 60

client_body_timeout

整数

クライアントがリクエストの本文を送信するためのタイムアウト。 このタイムアウトは、リクエストの本文全体は転送せず、2 回の読み取り操作の間のみに渡るように設定されます。 この時間の間にクライアントがデータをまったく送信しない場合、エラーが返されます。
デフォルト: 60

send_timeout

整数

クライアントがデータを受信するためのタイムアウト。 この間隔の間にクライアントが応答しない場合、接続は閉じられます。 このタイムアウトは、リクエストの本文全体は転送せず、2 回の書き込み操作の間のみに渡るように設定されます。
デフォルト: 60

server_timeout

整数

バックエンド サーバへの tcp 接続を確立するためのタイムアウト(単位は秒)。 これにはヘルス チェックが含まれます。
この設定には注意が必要です。値が小さすぎる場合、負荷が大きいとヘルス チェックがタイムアウトして、出力が無効になることがあります。 タイムアウトを 20 秒未満に設定することはお勧めしません。
デフォルト: 20

コントロール インターフェース プロパティ

名前

タイプ

説明

ctl_port

整数

ctl 端子を介して Web サービス コントロール インターフェースにアクセスするために使用するポート。
デフォルト: 80

ロギング プロパティ

名前

タイプ

説明

enable_access_log

文字列

アクセス ログを有効または無効にします。 デフォルト: no

access_log_filename

文字列

アクセス ログのファイル名。 デフォルト: access.log

カスタム カウンタ

URLSW アプライアンスは mon 端子を介して以下のカスタム カウンタをレポートします。

カウンタ名

説明

アクティブな接続

アクティブな接続の数。

受け付けられた接続

受け付けられた接続の数。

処理された接続

処理された接続の数。

処理されたリクエスト

処理されたリクエストの数。

アクティブな読み取り接続

アクティブな読み取り接続の数。

アクティブな書き込み接続

アクティブな書き込み接続の数。

アクティブな接続待機

アクティブな接続待機の数。

パフォーマンス

リクエスト レート

ドキュメント サイズや利用可能なネットワーク帯域幅にもよりますが、URLSW は毎秒 3000 以上のトランザクション(リクエスト/応答ペア)をルーティングします。

データ スループット

URLSW は 25MB/秒以上でルーティングします。

同時接続

URLSW は、1000 以上の同時リクエストをサポートします。 テストでは、URLSW は 10,000 を超えるアクティブな同時転送をサポートしました。

エラー メッセージ

アプライアンスの起動に失敗した場合、以下の内容のエラーがシステム ログにログ記録される場合があります。

エラー メッセージ

説明

エラー: ctl 端子を初期化できませんでした。CA Technologies のサポートにお問い合わせください。

ctl 端子の初期化中にシステム エラーが発生しました。CA Technologies のサポートにお問い合わせください。

エラー: アクセス ログは有効ですが、log 端子が接続されていません。

log 端子は接続されていませんが、enable_access_log は「はい」に設定されています。

エラー: 外部ヘルス チェッカーを初期化できませんでした。CA Technologies のサポートにお問い合わせください。

外部ヘルス チェッカーの起動中にシステム エラーが発生しました。CA Technologies のテクニカル サポートにお問い合わせください。

エラー: 統計レポートを初期化できませんでした。CA Technologies のサポートにお問い合わせください。

統計レポートの初期化中にシステム エラーが発生しました。CA Technologies のサポートにお問い合わせください。

出力端子のプログラムによる制御

概要

コントロール Web サービス インターフェースは、設定されたポート ctl_port 上の ctl 端子に公開され、以下のことが可能になります。

プロトコル

出力端子のプログラムによる制御では、読み取り機能のみを提供する GET HTTP メソッドが使用されます。 したがって、サポートされているすべてのタイプのプロトコルで、リクエストはその URI および出力構造によって定義できます。 文字は URI では「特殊」と認識されるため、標準的な % エンコーディングを使用してエスケープする必要があります。

サポートされているすべての URI の説明を以下に示します。

コントロール コール

以下の制御呼び出しを行えます。

典型的な使用状況
負荷分散機能を使用する Web サイト

以下の図は、4 つの Web サーバおよびデータベースを使用する URLSW アプライアンスの典型的な使用状況を示しています。

4 つの Web サーバおよびデータベースを使用する URLSW アプライアンスの典型的な使用状況

使用中のアプライアンス:

プロパティ設定の例:

プロパティ名

ノート

out1_type

hostname

srv1 のリクエストは hostname によって一致します。

out1_value

static.server.com、images.server.com

hosts static.server.com および images.server.com のリクエストは srv1 によって対応されます。

out2_type

file type

srv2 のリクエストは file type によって一致します。

out2_value

*.pdf

PDF ドキュメントは srv2 によって対応されます。

out3_type

file type

srv3 のリクエストは file type によって一致します。

out3_value

*.php

PHP スクリプト srv3 によって対応されます。

他のすべてのリクエストは、aux 端子に接続された時点で srv4 によって対応されます。

クライアント リクエストは user ゲートウェイに到達します。 リクエストはゲートウェイによって URLSW サーバに転送され、その場所から、アプライアンス プロパティ内で定義されているか ctl 端子によって動的に追加されるルールに従って、4 つの Web サーバ間に配布されます。 ctl 端子は管理者ゲートウェイからアクセスできます。

ノート

アプライアンス内で使用されるオープン ソース/サードパーティ ソフトウェア

URLSW は、ベース クラス LUX5 で使用されるサードパーティのオープン ソース パッケージに加えて、以下のサードパーティのオープン ソース パッケージを使用します。

ソフトウェア

バージョン

変更

ライセンス

ノート

nginx-stable

0.8.53

いいえ

GPLv2

該当なし

samba-client

3.0.28-0.el5.8

いいえ

GPLv2

該当なし

samba-common

3.0.28-0.el5.8

いいえ

GPLv2

該当なし

thttpd

2.25b

いいえ

BSD

ホームページ