脚本宝典收集整理的这篇文章主要介绍了php – 使用Varnish HTTP加速器清除目录下的所有文件,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,如果URL包含路径/ PRoduct / a-sPEcific-product /,是否也可以清除/ product / a-specific-product / a-sub-page /?等文件.
我有以下函数用于清除Varnish 3中的特定URL(类Varnishpurger()的一部分:
public function executePurge() { $purgeUrls = array_unique($this->purgeUrls); foreach($purgeUrls as $url) { $this->purgeUrl($url); } if (!empty($purgeUrls)) { $this->purgeUrl(home_url()); } } protected function purgeUrl($url) { $c = curl_init($url); curl_setopt($c,CURLOPT_CUSTOMREQUEST,'PURGE'); curl_exec($c); curl_close($c); }
例如,在PHP中,当您要清除时,为Varnish添加自定义HTTP标头.
curl_setopt($c,CURLOPT_HTTPHEADER,array('X-Purge-Regex-URL'));
if (req.http.X-Purge-Regex-URL) { if (!client.ip ~ purge) { error 405 "Not Allowed."; } ban_url(req.url); error 200 "Banned URL"; }
现在当您为/ product / a-specific-product /与regexp匹配的所有内容发出清除时,包括/ product / a-specific-product / a-sub-page /将被清除.
请注意,HTTP主机被忽略,因此如果您正在运行虚拟主机并且只想清除特定站点,则需要使用ban()而不是req.http.host和req.url参数.如果您需要这种类型的解决方案,请告诉我.
此外,如上所述,清除是正则表达式清除,因此清除/产品将清除所有匹配产品的URL.
以上是脚本宝典为你收集整理的php – 使用Varnish HTTP加速器清除目录下的所有文件全部内容,希望文章能够帮你解决php – 使用Varnish HTTP加速器清除目录下的所有文件所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。