Я пытаюсь отправить запрос BAN
через curl
на сервер Varnish
на недопустимый кешированный контент. URL-адрес содержит некоторое регулярное выражение для лака для проверки. Я был успешно отправки этого запроса:regex issue отправка запроса BAN на сервер Larn через curl
1. curl -X BAN "https://oursite.com/product/item/(100|7|9||8|7|6|5|4|2|1)"
<!DOCTYPE html>
<html>
<head>
<title>200 Ban added</title>
</head>
<body>
<h1>Error 200 Ban added</h1>
<p>Ban added</p>
<h3>Guru Meditation:</h3>
<p>XID: 66211</p>
<hr>
<p>Varnish cache server</p>
</body>
</html>
, но с более сложной URL
2. curl -X BAN "https://oursite.com/product/(search/home$|item/(391|1232))"
// What I'm trying to remove are:
1./product/search/home
2./product/item/391
3./product/item/1232
default.vcl
if (req.method == "BAN") {
if (!client.ip ~ purge) {
return(synth(403, "Not allowed."));
}
ban("req.url ~ ^"+req.url);
return(synth(200, "Ban added"));
}
Varnish журнала:
* << BeReq >> 163855
- Begin bereq 163854 pass
- Timestamp Start: 1450969228.080453 0.000000 0.000000
- BereqMethod BAN
- BereqURL /product/(search/home$|item/(391|1232))
- BereqProtocol HTTP/1.1
- BereqHeader User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
- BereqHeader Host: oursite.com
Завиток запрос был успешно выполнен, как показано на varnishlog
, но я не знаю, почему регулярное выражение не работает. Ни одна из страниц не очищается. Может ли кто-нибудь сказать мне, в чем проблема? Какие персонажи мне нужно бежать?
является Подвыражение 'поиск/дома $' означает содержать буквальный знак доллара ИЛИ и «конец-строки» маркер? Это поможет, если вы перечислите отдельно каждый матч, который вы намереваетесь сделать, и укажите, имеются ли какие-либо литературные символы, которые могут быть перепутаны с реестрами. Удачи. – shellter
@shellter Спасибо за ваши предложения. Я обновил сообщение. Знак доллара представляет собой «конец строки». Я только что проверил, что запрос curl был успешно выполнен, поэтому это должно быть регулярное выражение, которое предотвращает проблему. – RedGiant
FYI: используйте varnishadm ban.list, чтобы узнать, как хранится регулярное выражение запрета. И старайтесь быть дружелюбным (не запрещайте по требованию *) http://book.varnish-software.com/4.0/chapters/Cache_Invalidation.html#lurker-friendly-bans – matheuzzy