사이트에 대해 여러 백엔드로 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]); }
환경에 따라 필요한 변경을 수행합니다. 모든 링크와 문서를 읽고 시도하기 전에 이전 구성을 백업하십시오.