5

尝试搜索此内容,但今天缺少我的 google-fu。

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

/var/www/vhosts/testa.mydomain.com/httpdocs and 
/var/www/vhosts/testb.mydomain.com/httpdocs

每个 documentroot 几乎都是一个完整的站点大修,我想做 A/B(多变量)测试,看看哪个站点表现更好。

上周谷歌搜索我看到了基于时间(偶数和奇数秒)的建议,但是因为该站点是一个篮子站点(或者甚至是一个篮子案例!),我不想在 2 个不同的处理场景之间来回切换-交易。

因此,我认为如果客户端 IP 地址最后一个八位字节是偶数,则从 testa 提供服务会很好,如果最后一个八位字节是奇数,则从 testb 提供服务会很好。然后,我们至少可以获得一些指标,说明有多少人在网站的不同版本中因为过于笨重而放弃了购物篮。

我很确定一堆基于 %{REMOTE_ADDR} 的 RewriteCond 行会做到这一点,但我对 mod_rewrite 很绝望。

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

哪位好心的大师能给点建议?

TIA大卫

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

4

3 回答 3

4

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

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

RewriteEngine On
RewriteCond %{REMOTE_ADDR} [13579]$
RewriteRule .* http://testa.mydomain.com/$1 [R=301,L]

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

RewriteEngine On
RewriteCond %{REMOTE_ADDR} [02468]$
RewriteRule .* http://testb.mydomain.com/$1 [R=301,L]

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

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]
于 2011-07-29T09:57:33.330 回答
1

Google 现在通过其 Google Analytics Experiments Interface / API 提供 A/B/N 测试。

关于此的文章写在:https ://blog.crazyegg.com/2015/06/02/ab-testing-google-analytics/

你可以从谷歌阅读更多关于它的信息: https ://developers.google.com/analytics/solutions/experiments

因此,一种可能性是将 Google 的跟踪放在您网站的两个版本中,并让 Google 处理您网站的重定向(您可以使重定向始终相等或采用多臂强盗方法)。

于 2017-01-10T22:54:20.317 回答
0

你试过负载均衡器吗?

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

也可以看看

http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html#Sample_Configuration

http://onjava.com/pub/a/onjava/2004/03/31/clustering.html

于 2011-07-29T10:04:41.057 回答