web-dev-qa-db-ja.com

特定の拡張子なしで、または特定のディレクトリにあるキャッシュファイルにニスを塗ることができます

サービスが提供する(多くの)イメージをキャッシュするためのワニスをインストールしています。毎秒約4kの約200枚の画像であり、ニスは次のルールに従ってそれらを喜んで提供します。

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(最後に2つの数字)になる可能性があります(実際には、これはタイムスタンプであるため、ファイル名に追加情報を保持できます)

これには、ワニスがそれらをキャッシュしないという副作用があり、Apache自体によって常に提供されていることがわかります。

これからフォーマットを変更して.jpgで終わるサムを作成することはできますが、ワニスデーモンのvclファイルを変更して、ディレクトリ(thumbnailsディレクトリ)の下にすべてをキャッシュする方法はありますか? )またはその拡張子に2つの数字があるすべて?

追加情報を提供できるかどうか教えてください!

ありがとう!

4
pataroulis

既存のルールを少し変更するだけでうまくいきます。

if (req.request == "GET" && req.url ~ "^/thumbnails/") {
        remove req.http.cookie;
        return(lookup);
}

または、正規表現を作成することもできます\.\d{2}$2桁で終わるすべてをキャッシュしたい場合。

3
womble

一致するサムネイルディレクトリを使用する方が簡単だと思います。

req.url ~ "\thumbnails\?.*"はかなり近いはずです。

正規表現とワニスについてもっと読むことをお勧めします。

1
user130832