使用apache和mod_重写进行A/B测试

使用apache和mod_重写进行A/B测试,apache,mod-rewrite,document-root,multivariate-testing,Apache,Mod Rewrite,Document Root,Multivariate Testing,尝试搜索这个,但我的google fu今天缺少 所以我有两个版本的网站,在 /var/www/vhosts/testa.mydomain.com/httpdocs and /var/www/vhosts/testb.mydomain.com/httpdocs 其中,每个documentroot几乎都是一个完整的站点大修,我想做a/B(多变量)测试,看看哪个站点性能更好 上周,我在谷歌上看到了关于基于时间(偶数秒和奇数秒)的建议,但由于该网站是一个篮子网站(甚至可能是一个篮子!),我不想在两个

尝试搜索这个,但我的google fu今天缺少

所以我有两个版本的网站,在

/var/www/vhosts/testa.mydomain.com/httpdocs and 
/var/www/vhosts/testb.mydomain.com/httpdocs
其中,每个documentroot几乎都是一个完整的站点大修,我想做a/B(多变量)测试,看看哪个站点性能更好

上周,我在谷歌上看到了关于基于时间(偶数秒和奇数秒)的建议,但由于该网站是一个篮子网站(甚至可能是一个篮子!),我不想在两个不同的处理场景之间切换

所以我认为如果客户端ip地址最后一个八位字节是偶数,那么从testa提供服务会更好,如果最后一个八位字节是奇数,那么从testb提供服务会更好。然后,我们至少可以获得一些指标,看看有多少人在不同版本的网站中因为过于笨拙而放弃了这个篮子

我很确定基于%{REMOTE_ADDR}的一堆RewriteCond行可以做到这一点,但我对mod_rewrite非常失望

用户将访问test.mydomain.com,并且应该从一个或另一个DocumentRoot提供服务,在他们的url中看不到testa或testb,但我们可以记录每个变体的性能

有好心的大师能给你建议吗

短暂性脑缺血发作 大卫

更新:如果有帮助,我可以通过虚拟主机将testa.mydomain和testb.mydomain设置为子域。

选项1(重定向)将其中一个添加到两个域中

放在偶数站点(testb.mydomain.com)

放在奇数站点(testa.mydomain.com)

选项2(子文件夹不是子域)


你试过负载平衡器吗

您可以使用文件rules.xml或使用代码(规则和规则链)设置负载平衡规则。在/balancer中应该有一个示例系统,它向您展示了如何编写规则

另见


谷歌现在通过其谷歌分析实验界面/API提供A/B/N测试

有关这方面的文章载于:

您可以从谷歌上了解更多信息,网址为:


因此,一种可能是将谷歌的跟踪功能放在你网站的两个版本中,让谷歌处理你网站的重定向(你可以使重定向在任何时候都是平等的,或者采取多武装强盗的方法)

嗯,这个问题不是难就是无聊!重定向是否可以接受?或者你能把这些站点放在父域的子文件夹中吗?我来测试一下。如果成功的话,你会得到赏金和我无尽的感激!另一方面,选项2允许您为两个站点使用相同的域,因为它只是在内部将用户引导到正确的站点版本。计算机上的多个虚拟主机,包括分散的配置,目前甚至看不到重写日志条目!不管怎么说,赏金是在我解决自己的配置问题后最有可能解决我的问题的!
RewriteEngine On
RewriteCond %{REMOTE_ADDR} [13579]$
RewriteRule .* http://testa.mydomain.com/$1 [R=301,L]
RewriteEngine On
RewriteCond %{REMOTE_ADDR} [02468]$
RewriteRule .* http://testb.mydomain.com/$1 [R=301,L]
RewriteEngine On
#direct to EVEN SITE
RewriteCond %{REMOTE_ADDR} [02468]$
RewriteRule (.*) /testa.mydomain.com/$1 [L]

#direct to ODD SITE
RewriteCond %{REMOTE_ADDR} [13579]$
RewriteRule (.*) /testb.mydomain.com/$1 [L]