2017-03-27 65 views
0

爲了使緩存失效,我編碼URL的方式如下:如何提取和上光油的base64解碼參數VCL

$clean_url = base64_encode($url); 

http://url_of_the_varnish_host_to_clean/clean/url?v=$clean_url 

我想抓住這個網址清潔,它在解碼我的vcl文件。 我趕上的要求是這樣的:

if (req.url ~ "^/clean/url?v=") 

但我不知道如何捕捉到的參數和解碼。

回答

0

你至少需要vmod_digest它提供了digest.base64_decode函數。

而且,你的正則表達式是有點不對,應該是:

if (req.url ~ "^/clean/url\?v=") 

這就是說,爲什麼你的無效邏輯有這麼複雜嗎?爲什麼不以標準方式進行 - 即根據定義的ACL檢查purger IP的匹配並使PURGE請求(不是參數)的URL無效。

+0

這裏的問題是,我們用清漆3.0.2和vmod_digest需要4.2 –

+0

我們使用這個系統的原因是,我們還可以使用主機?v =或參數無效主機或特定的參數?v = –

+0

好吧,我不你真的不明白你可以使用你的方法無效,你不能使用標準的無效方法。更多示例?) –