2012-09-02 2 views
0

작성한 모든 링크에 대한 가중치 회 전자가 필요합니다. 트래픽을 가중치가 적용된 배율로 정의 된 대상에 분산시킬 수 있습니다.가중치가 적용된 웹 사이트 순환 장치

등 .. 내가 "무게"나는 정의에 그러나 많은 대상에 따라 분배한다 무언가를 원하는 .. 그러나 이것은 단지 트래픽을 하나의 소스로 배포

<? 

header('Location: www.destinationwebsite1.com/index.php'); 

?> 

:

나는 현재 다음 사용
25% to www.destinationwebsite1.com/index.php 
25% to www.destinationwebsite2.com/index.php 
25% to www.destinationwebsite3.com/index.php 
25% to www.destinationwebsite4.com/index.php 

또는 내가 선택한 비율입니다. 누구든지 아이디어가 있습니까?

최저 이런 -N

+4

, PHP,하지 [아파치 모듈 mod_proxy_balancer] (http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html) –

+1

보통이이 하위 도메인으로 이루어집니다 (예 : , 'www1, www2, www3')가 아니라 도메인입니다. 또한 이것은 종종 백엔드에서로드 균형 조정으로 수행되므로 사용자는 하나의 링크를 볼 수 있지만 요청은 백그라운드에서 여러 "로드 밸런싱"서버 중 하나에 의해 충족됩니다. "클라우드"설정이 유리할 수도 있습니다 (예 : Amazon EC2). –

+0

다곤은 매우 옳습니다. 이것이로드 k 런싱을위한 것이라면 코드에서이를 수행하지 마십시오. 그것이 제휴사 일이라면 상황이 다를 수 있습니다. –

답변

0

뭔가?

<?php 
$r = rand()/getrandmax(); 

if ($r < 0.25) 
{ 
    header('Location: www.destinationwebsite1.com/index.php'); 
} 
elseif ($r < 0.50) 
{ 
    header('Location: www.destinationwebsite2.com/index.php'); 
} 
elseif ($r < 0.75) 
{ 
    header('Location: www.destinationwebsite3.com/index.php'); 
} 
else 
{ 
    header('Location: www.destinationwebsite4.com/index.php'); 
} 

?> 

통계적으로 각 사이트 방문자의 25 %를 보내야합니다. 각 사이트로 보낸 방문자 비율을 변경하려면 가중치 수를 변경하십시오.

+0

반복이 나타납니다. 나는 반복을 본다. 나는 반복을 본다. 나는 반복을 본다. –

1

숫자를 사용하여 random 숫자를 사용하고 결과를 다른 장소로 보냅니다.

// equal weights: 
$sites = Array(
    "http://www.example.com/", 
    "http://google.com/", 
    "http://youtube.com/" 
); 
header("Location: ".$sites[rand(0,count($sites)-1)]); 

// individual weights: 
$sites = Array(
    "http://www.example.com/" => 50, 
    "http://google.com/" => 30, 
    "http://youtube.com/" => 20 
); 
$rand = rand(0,array_sum($sites)-1); 
foreach($sites as $site=>$weight) { 
    $rand -= $weight; 
    if($rand < 0) break; 
} 
header("Location: ".$site); 
이 아파치를 통해 수행해야
+0

사이트를 동적으로 입력 할 필요가없는 경우이 작업은 너무 복잡 할 수 있습니다. –

관련 문제