名前

Perlbal::FAQ - Perlbalについてよくある質問

バージョン

Perlbal 1.78.

説明

このドキュメントは幾つかのPerlbalについて良く聞かれる質問をリストすることを目的にしています。

Perlbalの設定

init.dで使用できるサンプルのperlbal.*はありますか?

はい。debian/perlbal.init の下に見つけることができます。start, stop および restart/force-reload を実装します。あなたの好みと必要に応じてそれを調整してください。

シャットダウンせずにperlbalが設定ファイルを再読込みする方法はありますか?

いいえ。ありません。しかし一般的に、もし変更する場合には、それらを少しも再起動する必要が無い管理コンソール上で実施することができます。

いずれにしても、再起動はおそらく簡単です。そのトリックはgraceful restartのシミュレートをすることです。

graceful restartをどうやって実装しますか?

graceful restartを実行することができるスクリプトの例があります:

    $ cat restart-perlbal.sh
    echo "shutdown graceful" | nc localhost 60000
    /usr/local/bin/perlbal --conf=/etc/perlbal.conf

考え方としては、古いPerlbalにgraceful shutdownをするように伝えます: すぐに全てのlisten中のソケットを閉じ、新しい接続が受け付けられなくなります。それが完了すると(瞬間的なものです)、新しいPerlbalを開始することができます。

これにより、ミリ秒単位の最小限のダウンタイムがあります(これは新しいPerlbalが開始するために掛かる時間です)。

この例が動作するためには、ポート60000上でmanagement サービスがlistenしている必要があることを忘れないでください。the Perlbal::Manual::Management manpage を見てください。

ロードバランス

Perlbalが使っているバランサのアルゴリズムは何ですか?

現在のところ、Perlbalは一つのバランシングメソッドのみをサポートします: random

    SET pool balance_method = 'random'

このモードにより、Perlbalは各受信したリクエストに対してプール内の1つのノードをランダムに選択します。backend_persistが有効な場合は、既存のidleバックエンド接続を再利用することを好みます。それは毎回新しい接続が開くのを待つよりも早いです。

プラグイン

使用されているプラグインの順番に影響を与えることができますか?

はい。サービスにプラグインを設定すると、順番にホックを登録します。

    SET plugins = AccessControl HighPri

これらのホックは配列に入れられ、そのことはそれらがプラグインの順番を保持することを意味します。

HTTP, SSL

perlbal は HTTP 1.1 をサポートしますか?

たいていの部分でPerlbalはクライアントとバックエンドwebサーバの両方にHTTP/1.0で話します。It happily takes requests advertising HTTP/1.1 and downgrading them to HTTP/1.0 when speaking to backend serves.

Perlbalはpersistent接続について(1.0でも1.1でも)知っており、HTTP/1.0 接続で応答するでしょう: リクエストのkeep-aliveはHTTP/1.1でのみ明示的にkeep-aliveされます。etc.

Perlbalは今は1.1のもっと多くのものも話し始めています。例えば、Perlbalは転送エンコーディング"chunked"リクエストのクライアントからの受け取りをサポートします(HTTP/1.1の機能)。Expect: 100-continueに対応して100 Continueを送信します。request-of-unknown-lengthをディスクに書き込みます(buffered_uploads が有効な場合のみ)。そして、HTTP/1.0リクエストをバックエンドに実際の Content-Length (now known) を埋めて送信するでしょう。

1.1のもっと多くのものがサポートされると、それはオプションになり、後でデフォルトになるでしょう。. しかしながら、何年か使われた後では、あまり理由がありません。chunkされたリクエスト(モバイルフォンが大きな画像をアップロードするときに一般的)は鬱陶しい欠点ですが、今では解決されています。HTTP/1.1のもっと多くがサポートされるかどうかは疑わしいです。

perlbal はSSLをサポートしますか?

はい。SSLモードを使用するには、 the IO::Socket::SSL manpage v0.98+ をインストールする必要があります。

web_server, reverse_proxy あるいは selector モードのいずれでもSSLを使うことができますが、SSLとvhostsは互換性がないため、vhostベースのselector サービス上では使うことができません。

例として conf/ の下の ssl.conf 設定ファイルを見てください。

参照

the Perlbal::Manual の manpage.

TOP
inserted by FC2 system