Varnish, похоже, не кэширует

Varnish, похоже, не кэширует

Я установил зеркало кэша Varnish перед файловым сервером, но, похоже, оно бесконечно перезагружает данные с моего файлового сервера.

Общий объем данных составляет около 100 ГБ, но на данный момент Varnish скачал с моего файлового сервера 800 ГБ.

Я использую файл VCL по умолчанию, который поставляется с Varnish, и заголовки ответов для файлов, обслуживаемых файловым сервером, похожи на следующие:

HTTP/1.1 200 OK
Cache-Control: max-age=290304000, public
Content-Type: image/jpeg
Expires: Wed, 29 Dec 2010 21:38:33 GMT
Server: Microsoft-IIS/7.0
E-Tag: "8b4723296ab697530768f18b1378b269"
Content-Disposition: inline; filename=image046.jpg;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 23 Dec 2010 05:38:33 GMT
Content-Length: 100592

Я запускаю varnishd со следующими параметрами:

varnish/sbin/varnishd -a 0.0.0.0:80 -f varnish/etc/varnish/default.vcl -s file,varnish/var/lib/varnish/varnish_storage.bin,100G

решение1

sub vcl_recv {
    if (req.url ~ "\.(cur|gif|jpg|jpeg|swf|css|js|flv|mp3|mp4|pdf|ico|png)(\?.*|)$") {
      unset req.http.cookie;
      unset req.http.Accept-Encoding;
      unset req.http.Vary;
    }
}

Если ваши запросы содержат файлы cookie, они будут переданы на бэкэнд по умолчанию. Удаление кодировки и изменения немного нормализует ситуацию, так что вам не придется хранить несколько копий ваших изображений в кэше. Кроме того, я думаю, что 100 ГБ может быть немного избыточным для вашего резервного хранилища, вы можете рассмотреть что-то более близкое к объему оперативной памяти, который есть на вашем компьютере.

Связанный контент