如何将%的流量重定向到不同的网站?

时间:2011-01-05 18:11:23

标签: php apache logic

我正在开发一个LAMP(PHP)堆栈。

场景 - 我想根据百分比将传入的流量重定向到不同的网站。

示例:主要www.a.com。我还有其他几个网站 - www.a1.com,www.a2.com,www.b1.com,www.b2.com。

现在当流量来到我的主站点www.a.com时,我想将流量分成 -

33% of traffic redirected to www.a1.com
33% of traffic redirected to www.a2.com
30% of traffic redirected to www.b1.com
4%  of traffic redirected to www.b2.com

我怎样才能做到这一点?我是一个php开发人员,所以想通过php来做,但也想知道是否涉及任何其他技术。 ------更新----

一旦用户点击主站点上的注销按钮,我想实现此功能。 谢谢, Tanmay

3 个答案:

答案 0 :(得分:3)

生成1到100之间的随机数,

0-32 redirected to www.a1.com
33-65% redirected to www.a2.com
66-95% redirected to www.b1.com
96-99% redirected to www.b2.com

您可以使用服务器提供这些功能。看看这些关键字:nginx,循环赛。

答案 1 :(得分:0)

$route_decider = rand(0, 99);

/**
/* Remember there should not be an output before the header response. Browsers must see HTTP header 
/* response first! Upon logout redirect to a page containing this code.
/*
 **/

if ( $router_decider >= 0 && $route_decider <= 32) # 33 %
    header( 'Location: http://www.a1.com' );

if ( $router_decider >= 33 && $route_decider <= 65) # 33 %
    header( 'Location: http://www.a2.com' );        

if ( $router_decider >= 66 && $route_decider <= 95) # 30 %
    header( 'Location: http://www.b1.com' );              

if ( $router_decider >= 96 && $route_decider <= 99) # 4 %
    header( 'Location: http://www.b2.com' );        

答案 2 :(得分:0)

我有几美分:

  1. 将代理服务器设置为您的初始目标网站。 www.main-domain.com
  2. 在此处添加脚本以转移流量
  3. 转移是基于流量的%ge,因此请编写代码以统计访问主域的访问者。
  4. 为您的柜台开一个会议,然后开始转移。计算每个域的转移量并进行会话。
  5. 始终检查会话计数器并进行重定向。

这是一种基本逻辑。您可以扩展或考虑类似的思路。

如果您有防火墙应用程序,则可能具有基于%ge的重定向设置。

谢谢。