サイトに対して複数のバックエンドでVarnishを設定できますか?たとえば、複数のバックエンドを持つ高可用性サイトがあります。
www.goodies.com
たとえば、PHP 5.6で実行されているウェブサイトがあります。だからwww-nodes
バックエンドで3つあります。www-node5.6a
www-node5.6b
www-node5.6c
Varnishでは、バックエンドを次のように設定しました。
backend www-node5.6a {
.host = "10.0.0.11";
.port = "80";
.connect_timeout = 6000s;
.first_byte_timeout = 6000s;
.between_bytes_timeout = 6000s;
}
backend www-node5.6b {
.host = "10.0.0.12";
.port = "80";
.connect_timeout = 6000s;
.first_byte_timeout = 6000s;
.between_bytes_timeout = 6000s;
}
backend www-node5.6c {
.host = "10.0.0.13";
.port = "80";
.connect_timeout = 6000s;
.first_byte_timeout = 6000s;
.between_bytes_timeout = 6000s;
}
私の質問は、ユーザーが特定のサイトに対してランダムにバックエンドを使用できるようにVarnishをどのように設定しますか?
ベストアンサー1
目的のコンテンツをランダムに展開するには、構成ファイルに次の内容を追加する必要があります。
director cl1 random {
{ .backend = [Backend0]; .weight = 1; }
{ .backend = [Backend1]; .weight = 1; }
}
Varnish バックエンドの仕組みの詳細については、次をご覧ください。ここで発見。上記のスニペットが以下からインポートされたことがわかりました。このブログ。以下のようにURLに基づいてこれを行うこともできます。ここ。高可用性のためのVarnish構成の詳細を学ぶこともできます。ここ。
ヘルスチェックを実行し、ラウンドロビンモードで実際のスーパーバイザを設定および定義することを検討する必要があります。ランダムはランダムです。理論的には、サイトを訪問するすべてのユーザーが同じバックエンドにランダムに送信される可能性があります。これは、バックエンドの状態に応じてコンテンツが均等に配信されるのと同様に、「ランダム」です。予想するその他のソース彼らは似たようなものを持っています:
import directors; backend [Backend0] { .host = "192.168.0.10"; .probe = { .url = "/"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } } backend [Backend1] { .host = "192.168.0.10"; .probe = { .url = "/"; .timeout = 1s; .interval = 5s; .window = 5; .threshold = 3; } } sub vcl_init { new vdir = directors.round_robin(); vdir.add_backend([Backend0]); vdir.add_backend([Backend1]); }
環境に応じて必要な変更を行います。すべてのリンクとドキュメントを読み取る前に、以前の設定をバックアップしてください。