Varnish - 하나의 사이트에 대한 여러 백엔드

Varnish - 하나의 사이트에 대한 여러 백엔드

사이트에 대해 여러 백엔드로 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]);
 }

환경에 따라 필요한 변경을 수행합니다. 모든 링크와 문서를 읽고 시도하기 전에 이전 구성을 백업하십시오.

관련 정보