今天,我们有我们的networking层暴露在世界上。 我们希望在我们的Web层前添加Varnish以加速网站并减less对后端的呼叫。 但是,我们有一些担忧,我想知道大多数人如何接近他们:
A / Btesting – 如何testing每个页面的两个“版本”并进行比较? 我的意思是,清漆如何知道哪个页面提供服务? 如果和如何保存每个页面上的单独版本?
function部署 – 您将如何设置一个简单的function部署机制? 比方说,我想打开一个新的function/页面只是10%的stream量,然后再增加到20%?
你如何处理代码部署? 您是否在每个部署中清除整个清漆caching? (我们每天部署)。 或者你只是让它慢慢过期(使用TTL)?
任何有关这些问题的想法和例子, 非常感谢!
A / Btesting – 如何testing每个页面的两个“版本”并进行比较? 我的意思是,清漆如何知道哪个页面提供服务? 如果和如何保存每个页面上的单独版本?
你有几个select:
绕过特定url的caching。 你可以pass
在vcl_recv
返回pass
来做到这一点。 像这样的东西:
sub vcl_recv { if (req.url ~ "^/path/to/document") { return (pass); } }
在公开新版本时显式清除caching。
function部署 – 您将如何设置一个简单的function部署机制? 比方说,我想打开一个新的function/页面只是10%的stream量,然后再增加到20%?
我不确定有一个“简单”的方法来做到这一点。 既然你可以把任意的C
代码放在你的.vcl
文件中,你可能会添加一些逻辑来select一个随机数,然后根据结果select合适的后端path。
你如何处理代码部署? 您是否在每个部署中清除整个清漆caching? (我们每天部署)。 或者你只是让它慢慢过期(使用TTL)?
对于重大更改,我们只是清除caching,对于较小的更改,我们只是让事情过期。