Может лакировать файлы кеша без определенного расширения или находиться в определенной директории

У меня есть установка лака для кэширования (МНОГО) изображений, которые обслуживает мой сервис. Это около 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\?.*" должно быть довольно близко.

Я рекомендую вам прочитать больше о регулярных выражениях и лаке.

Другие вопросы по тегам