名前

Perlbal::Manual::Configuration - Perlbalの設定の仕方

バージョン

Perlbal 1.78.

説明

デフォルトでは、Perlbalは設定ファイルを /etc/perlbal/perlbal.confで探します。

-c フラグを使って異なる設定ファイルを示すことができます。

    $ perlbal -c /home/user/perlbal.conf

-c は エイリアス--confを持ちます。

Perlbalをデーモンとして設定

perlbal をデーモンとして実行することができます。

    $ perlbal --daemon -c /home/user/perlbal.conf

--daemon はエイリアス -d を持ちます。

必要になるだろう通例の操作 (start, stop, restart) をサポートするperlbal.sh ファイルを作成し、 /etc/init.d の下に置くことは、よくあるやり方です。サンプルをdebian/perlbal.init の中で見つける事ができます。

設定ファイル

Perlbalの設定ファイルはテキストファイルで、プールとサービスを作成し、プールにサーバーを設定し、サービスのパラメータを設定し、サービスを有効/無効にします。

インデントは強制ではありませんが、読みやすさの点でよい慣例と見なされます。

設定は大文字小文字を区別しませんが、全てのディレクティブを大文字で書くことも良い慣習です。

プール

プールの設定のサンプルです:

    CREATE POOL mywebsite
        POOL mywebsite ADD 10.0.0.1:80
        POOL mywebsite ADD 10.0.0.2:80

最初の行はmywebsiteと呼ばれるプールを作成します。2行目と3行目はプールに異なるサーバを追加します。

今後、サービスの中でこのプールを使用することができるでしょう。

また、プールを作成した直後から、有効なプールと見なされるため、どのプールにサーバを追加したかを指定する必要はありません。

    CREATE POOL mywebsite
        POOL ADD 10.0.0.1:80
        POOL ADD 10.0.0.2:80

個々のファイルにプールを設定する

nodefile パラメータを使って異なるファイルにプールを作成するうことができます。

    CREATE POOL dynamic
        SET nodefile = conf/nodelist.dat

この区別されたファイルは 一行に一つip:portの形でアドレスを含まなければなりません。(空の行と、 # 記号で始まるコメントは無視されます。)

Perlbalは更新のために定期的にファイルをチェックします。

ファイルへのパスはperlbalが開始された場所からの相対です。

注意:

    SET pool nodefile = none
    (also undef, null, "", '')

...ノードファイルを解除しますが、現在のメンバーからは削除しません。

更に注意: ノードファイルを設定して POOL ADDまたはPOOL REMOVE を使ってプールを修正すると、Perlbalは更新のためのノードファイルのチェックを停止するでしょう!

例では、conf/load-balancer.confconf/nodelist.dat をチェックします。

プールバランスメソッド

プールバランスメソッドを設定することができます:

    SET pool balance_method = 'random'

現在のところ、random が唯一の利用可能なロードバランスメソッドです。

サービス

サービスのサンプルです:

    CREATE SERVICE service_mywebsite
        SET role            = reverse_proxy
        SET pool            = mywebsite
        SET listen          = 10.0.0.3:80

一行目は service_mywebsiteという名前のサービスを作成します。

続く3行はサービスのための3つのパラメータを設定します(これと同じ例を the Perlbal::Manual::LoadBalancer manpage の中でもっと詳しくみることができます)。

常にサービスをroleの定義と一緒に開始することは良い慣習です; このやり方で、Perlbalがまだサービスがどのroleを予期しているかを知らない間に、あるroleでのみ受け付け可能なパラメータを設定する試みによって起こるエラーメッセージを避けることができます。

パラメータの設定

パラメータをどちらかの形式のコマンドで設定することができます:

    SET <service-name> <param> = <value>
    SET <param> = <value>

パラメータの完全なリストについては、 the Perlbal::Manual::LoadBalancer manpagethe Perlbal::Manual::ReverseProxy manpage あるいは the Perlbal::Manual::WebServer manpageを見てください。

Note on types:

'bool' 値は、1, true, yes, on, 0, false, off, あるいは no のいずれかを使って設定することができます。

'size' の値は、整数値のバイト、あるいは バイト, キロバイト,あるいはメガバイト について'b', 'k', あるいは 'm' が後ろにある整数値です。

パラメータのデフォルトの設定

サービスのスコープの外側で、以降に作成される全てのサービスのデフォルトのパラメータを設定することができます:

    SET <param> = <value>

これは、上の パラメータの設定のセクションと同じパラメータをとります。

サービスの有効/無効

サービスを有効にするには:

    ENABLE service_mywebsite

サービスを無効にするには:

    DISABLE service_mywebsite

これらの行は、たとえ現在のところアクティブでなくても、ファイルの中で設定された幾つかのサービスを持たせることができるものです (一般的なシナリオは、ファイル上の全てを設定し、その後要求に応じてその場でサービスを有効/無効 にします; この方法の詳細は the Perlbal::Manual::Management manpage を見てください。)

設定ファイルのインクルード

Perlbalはもともと他の設定ファイルの中で設定ファイルを読み込むことができませんが、コアプラグインの一つがそれをします。

the Perlbal::Plugin::Include manpageを使って、この機能を使うことができます:

    LOAD include
    INCLUDE = /etc/perlbal/my.conf
    INCLUDE = /etc/perlbal/other.conf /etc/perlbal/*.conf

更なる例と詳しい情報については、the Perlbal::Plugin::Include manpage を見てください。

拡張

以下は設定ファイル/コマンドの中で、拡張/挿入します:

${ip:eth0}

Expands to the configured IP for interface "eth0". おそらくLinuxでのみ動作します。

コメント

Perlbalの設定ファイルの中のコメントは、#から始まります:

    # this is a comment
    ENABLE myservice # this is also a comment

環境変数

DANGABUILD_DAEMONONLY

Makefile.PLで使われます。trueに設定されると、モジュールは使われないでしょう。

DANGABUILD_MODULESONLY

Makefile.PLで使われます。trueに設定されると、perlbal 実行ファイルでは無く、そのモジュールだけが構築されます。

PERLBAL_DEBUG

Perlbalには4つのレベルのデバッグがあります。

この値を0から4(included)の値に設定することで、Perlbalのデバッグが有効になるでしょう。

    PERLBAL_DEBUG = 0 # デバッグしない
    PERLBAL_DEBUG = 4 # 全てをデバッグする

4つのレベルについての詳細は、 the Perlbal::Manual::Debugging manpage で説明されます。

PERLBAL_DEBUG_BUFFERED_UPLOADS

この値を1に設定することで、Perlbalがバッファされているリクエストに X-PERLBAL-BUFFERED-UPLOAD-REASON ヘッダを追加するようにします。

これはPerlbalがリクエストをバッファリングしていることを、バックエンドのマシーンに知らせるのに便利でしょう。

ヘッダーの値はなぜリクエストがバッファされたのかの理由も含んでいます。

PERLBAL_DEBUG_OBJ

この値は、コマンド obj あるいは track を適切に使用するためにtrueにしなければなりません。

詳細な情報は、the Perlbal::Manual::Management manpage を見てください。

PERLBAL_REMOVE_FIELDS

この値をtrueにすると、pelbalはperl 5.10+上で内部オブジェクトの field 名の実行時のロックを削除することで特別なスピードの増加を与えます。この交換条件として、As a tradeoff this will make code such as plugins or patch sets that incorrectly handling fields in perlbal to silently fail rather than giving warnings and errors.

あなたが適用しようとしてるperlbalのバージョン、プラグインとバージョン、およびその他のパッチの組み合わせが信用できるまで注意して使ってください。一度perlbalのインスタンスが問題ないと信用できれば、このオプションは単純にperlbalを高速にするに違いありません。

PERLBAL_TEST_ALPHA

これはPerlbalのalpha機能をテストするために使われる変数です。

これらの機能のうちの一つの開発をしている場合は、まず変数をtrueに設定します。

    PERLBAL_TEST_ALPHA = 1

そして、テストファイル上では、以下のように使用します:

    unless ($ENV{PERLBAL_TEST_ALPHA}) {
        plan skip_all => 'Alpha feature; test skipped without $ENV{PERLBAL_TEST_ALPHA}';
        exit 0;
    } else {
        plan tests => 4;
    }

PERLBAL_TRACK_STATES

これは、state changes コマンドを適切に使用するためにtrueに設定しなければならない値です。

詳細な情報は、the Perlbal::Manual::Management manpage を見てください。

PERLBAL_XS_HEADERS

trueを設定することで、the Perlbal::XS::HTTPHeaders manpage がインストールされている場合は、それを有効にすることができます。

もし the Perlbal::XS::HTTPHeaders manpage を有効にすると、 the Perlbal::HTTPHeaders manpage のフィールドへのアクセスができないかも知れないことに注意してください。

TEST_PERLBAL_FOREGROUND

この変数は the Perlbal::Test manpage によってPerlbalをテストするために使われます。

TEST_PERLBAL_FOREGROUND のtrueの値は、the Perlbal::Test manpage にフォアグラウンドでサーバを実行しなければならないと伝えます。

更に詳しい情報は the Perlbal::Test manpage を見てください。

TEST_PERLBAL_USE_EXISTING

この変数は the Perlbal::Test manpage によってPerlbalをテストするために使われます。

TEST_PERLBAL_USE_EXISTING が true に設定されている場合は、Perlbal::Test::start_server は既存のサーバの管理ポートに接続されているソケットが返されるでしょう。

更に詳しい情報は the Perlbal::Test manpage を見てください。

参照

the Perlbal::Manual::Management manpage.

TOP
inserted by FC2 system