Может лакировать файлы кеша без определенного расширения или находиться в определенной директории
У меня есть установка лака для кэширования (МНОГО) изображений, которые обслуживает мой сервис. Это около 200 изображений со скоростью около 4 тыс. В секунду, и лак радостно обслуживает их по следующему правилу:
if (req.request == "GET" && req.url ~ "\.(css|gif|jpg|jpeg|bmp|png|ico|img|tga|wmf)$") {
remove req.http.cookie;
return(lookup);
}
Дело в том, что я недавно добавил еще один сервис на том же сервере, который создает эскизы для обслуживания, но он не добавляет конкретного расширения. Файлы имеют следующий шаблон имени файла:
http://www.example.com/thumbnails/date-of-thumbnail/xxxxxxxxx.xx
где xx - это числа, поэтому xxxxxxxxx.xx может быть 6482364283.73 (два числа в конце) (на самом деле это метка времени, поэтому я могу сохранить дополнительную информацию в имени файла)
У этого есть побочный эффект, что лак не кэширует их, и я вижу, что они постоянно обслуживаются самим Apache.
Несмотря на то, что теперь я могу изменить формат, чтобы создать большие пальцы, заканчивающиеся на .jpg
, есть ли способ изменить файл vcl моего демона лака, чтобы либо кэшировать все в каталоге (thumbnails
справочник) или все с двумя номерами на его расширении?
Дайте мне знать, если я могу предоставить дополнительную информацию!
Спасибо!
2 ответа
Небольшое изменение вашего существующего правила поможет вам:
if (req.request == "GET" && req.url ~ "^/thumbnails/") {
remove req.http.cookie;
return(lookup);
}
Или вы могли бы сделать регулярное выражение \.\d{2}$
если вы хотите кэшировать все, заканчивающееся двумя цифрами.
Думаю, что проще пойти с соответствующим каталогом миниатюр.
req.url ~ "\thumbnails\?.*"
должно быть довольно близко.
Я рекомендую вам прочитать больше о регулярных выражениях и лаке.