如何同时运行两个版本的静态网站进行A/B测试?
问题描述:
例如我有一个非常简单的网站只有HTML/CSS/Javascript没有使用php,.net,ruby。我的网站的某些访问者应该看到版本“A”,而其他人则看到版本“B.如何同时运行两个版本的静态网站进行A/B测试?
网站的Apache服务器托管
答
的一种方法是通过分析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同样)。
你愿意付钱吗? – user123444555621 2012-04-24 06:18:12
我想如果有任何免费工具可以做这项工作 – 2012-04-24 06:27:15