Лак ничего не кэширует: varnishstat всегда с 0 отношениями

Да, это возможно и не вызовет проблемы, пока это настроено правильно. Для установки второго сервера DHCP как "обработки отказа", Вы захотите разделиться, DHCP 1 объемов служит. Чтобы сделать это, Вы настроили бы те же объемы на DHCP 2, поскольку существует на DHCP 1. Вы затем исключили бы процент объема на DHCP 1 и затем исключили бы противоположный процент объема на DHCP 2. Этот путь вместе они служили бы полному объему.

Microsoft рекомендует использовать 80%-й / 20% деление, но существуют дебаты по какой работы лучше всего.

Удостоверьтесь что, если у Вас есть какой-либо набор резервирования, что они - установка на вторичном сервере DHCP (если они находятся в пределах объема, который будет подаваться с того сервера).

         DHCP 1                     DHCP 2

scope    192.168.1.0/24             192.168.1.0/24
exclude  192.168.205 - 254          192.168.1.1 - 204

0
задан 13 March 2014 в 14:09
1 ответ

Чтобы определить, можно ли кэшировать ответы, добавьте следующий текст в свой VCL и обновите свой вопрос выходными данными varnishlog после изменения. Также опубликуйте свою командную строку varnish, особенно TTL по умолчанию (параметр -t ). Поскольку ваш внутренний сервер не отправляет заголовок Cache-Control , и вы не определяете beresp.ttl в vcl_fetch , Varnish использует значение по умолчанию для TTL определяется с помощью переключателя -t .

Следующий VCL будет добавлять заголовки X-Cacheable и X-ttl к каждому запросу.

sub vcl_fetch {

  # Varnish determined the object was not cacheable
  if (!(beresp.ttl > 0s)) {
    set beresp.http.X-Cacheable = "NO:Not Cacheable, ttl <0s";
    set beresp.http.X-ttl = beresp.ttl;
    return(hit_for_pass);
  }
  elseif (req.http.Cookie) {
    set beresp.http.X-Cacheable = "NO:Got cookie";
    set beresp.http.X-Cookie = req.http.Cookie;
    return(hit_for_pass);
  }
  elseif (beresp.http.Cache-Control ~ "private") {
    set beresp.http.X-Cacheable = "NO:Cache-Control=private";
    return(hit_for_pass);
  }
  elseif (beresp.http.Cache-Control ~ "no-cache" || beresp.http.Pragma ~ "no-cache") {
    set beresp.http.X-Cacheable = "Refetch forced by user";
    return(hit_for_pass);
  # You are extending the lifetime of the object artificially
  }
  elseif (beresp.ttl < 1s) {
    set beresp.ttl   = 5s;
    set beresp.grace = 5s;
    set beresp.http.X-Cacheable = "YES:FORCED";
  # Varnish determined the object was cacheable
  } else {
    set beresp.http.X-Cacheable = "YES";
    set beresp.http.X-ttl = beresp.ttl;
  }
}
1
ответ дан 4 December 2019 в 17:48

Теги

Похожие вопросы