Назад | Перейти на главную страницу

Как я могу настроить Varnish для кеширования только статического контента?

Я хотел бы настроить Varnish в качестве кеша обратного прокси для Apache.

Как настроить Varnish так, чтобы Varnish обрабатывал все статические данные (jpeg, jpg, png, gif, ico, js, css, txt, pdf, gz, zip, lzma, bz2, tgz, tbz, webp, html, htm) и А динамические страницы нужно передать Apache)

Единственные предложения, которые я видел до сих пор, - это некоторые варианты размещения всего моего статического контента в другом месте (например, поддомене) от динамического контента. Это кажется странным, даже смешным. В любом случае, это не вариант.

Хотели бы что-нибудь помочь?

if (req.url ~ “\.(jpeg|jpg|png|gif|ico|webp|js|css|txt|pdf|gz|zip|lzma|bz2|tgz|tbz|html|htm)$”) {
return (lookup);
} else {
return (pass);
}

В основном вы можете перехватывать содержимое Varnish с помощью расширения:

sub vcl_recv {
  //...
  if (req.url ~ "(?i)\.(jpeg|jpg|png|gif|ico|webp|js|css|txt|pdf|gz|zip|lzma|bz2|tgz|tbz|html|htm)$") {
      unset req.http.Cookie;
      return (lookup);
  } else {
      return (pass);
  }
  //...
}

// ..

sub vcl_fetch {
  //...
  if (req.url ~ "(?i)\.(jpeg|jpg|png|gif|ico|webp|js|css|txt|pdf|gz|zip|lzma|bz2|tgz|tbz|html|htm)$") {
      unset beresp.http.set-cookie;
  }
  //...
}

Имейте в виду, что вам необходимо удалить файлы cookie из статического содержимого.

Быстрый поиск в Google нашел следующее решение:

Лучше всего переместить статический контент в новый домен с другим IP. Тогда вы бы просто назвали это формой там

Вот ссылка на весь пост: https://www.varnish-cache.org/forum/topic/56

Обычно вы указываете свой сервер Varnish на статическое содержимое и позволяете Apache указывать на IP-адрес динамического содержимого.