如何同时运行两个版本的静态网站进行A/B测试?

问题描述:

例如我有一个非常简单的网站只有HTML/CSS/Javascript没有使用php,.net,ruby。我的网站的某些访问者应该看到版本“A”,而其他人则看到版本“B.如何同时运行两个版本的静态网站进行A/B测试?

网站的Apache服务器托管

+1

你愿意付钱吗? – user123444555621 2012-04-24 06:18:12

+0

我想如果有任何免费工具可以做这项工作 – 2012-04-24 06:27:15

的一种方法是通过分析IP地址或范围。

创建IP地址/范围的列表

$ips = array(
    "a" => array('xxx.xxx.xxx.xxx', ....), 
    "b" => array('xxx.xxx.xxx.xxx', ....), 
); 

现在,使用$_SERVER['REMOTE_ADDR']并切换域做到这一点

if(in_array($ips['a'], $_SERVER['REMOTE_ADDR'])) { 
    header("location: website.com/a"); 
} else { 
    header("location: website.com/b"); 
} 
exit; 

一种方法是运行Apache作为负载平衡器,“平衡”在这两个不同版本的站点之间(这是他们自己的虚拟主机在其他端口上运行)。当有人连接时,apache会随机将他们引导至网站的版本A或版本B.您可以使用mod_proxy_balancer来执行此操作。它还支持“粘性”平衡:也就是说,您可以设置一个cookie,以便一旦客户端进入版本A,它们总是定向到版本A(并且与版本B同样)。