Как извлечь и декодировать параметр base64 в Varnish VCL

Чтобы сделать кеш недействительным, я кодирую URL следующим образом:

$clean_url = base64_encode( $url );

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

Я хотел бы поймать этот URL, чтобы очистить и декодировать его в моем файле vcl.
Я ловлю запрос следующим образом:

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

Но я понятия не имею, как перехватить параметр и декодировать его.

0

Решение

Вам по крайней мере нужно vmod_digest который обеспечивает digest.base64_decode функция.

Кроме того, ваше регулярное выражение немного не так, должно быть:

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

Тем не менее, почему ваша логика аннулирования должна быть такой сложной? Почему бы не сделать это стандартным способом — то есть проверить соответствие IP-адреса очистителя определенному ACL и сделать недействительным URL-адрес запроса PURGE (не параметр).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]