Определение списков в VCL (язык конфигурации Varnish) - PullRequest
1 голос
/ 07 октября 2011

Есть ли способ определения списков доменов на языке Varnish VCL?Я полагаю, что-то подобное для ACL.Я хотел бы сделать что-то вроде этого (используя ACL в качестве примера).

acl website_list {
    '(www\.)?domain.tld';
    '(www\.)?domain2.tld';
}
...
if(req.http.Host ~ website_list) return(lookup);

Я мог бы просто использовать отдельные тесты RegEx, но это не очень многократно использовать, если я хочу использовать эти домены где-то ещев VCL.

Спасибо!

1 Ответ

1 голос
/ 04 февраля 2012

Вы можете иметь условие проверки, которое устанавливает заголовок маркера, а затем проверить его позже:

sub vcl_recv {
  if (req.http.Host ~ "^(www\.)?domain.tld" || 
      req.http.Host ~ "^(www\.)?domain2.tld") {

    /* Set the magic marker */
    set beresp.http.magicmarker = "1";
  }

  if (resp.http.magicmarker) {
    return(lookup);
  }
}
...