纯php反向代理的可能性?

时间:2012-12-05 22:30:45

标签: php proxy reverse

让我在这里解释一下 - 我正在使用BOX1,我想访问BOX2,但我想使用域来访问它(example.com),所以我的域指向box1,现在如何让example.com从box2获取内容而不实际重定向到box2的IP地址?

3 个答案:

答案 0 :(得分:0)

我们对“反向代理”的定义似乎有所不同。我倾向于将其与负载平衡和缓存等同起来,而您只是希望基于GeoIP查找发布301/302重定向。

<?php
$servers = array(
    'CA' => array('1.1.1.1', '2.2.2.2'),
    'US' => array('3.3.3.3', '4.4.4.4')
);

$cc = geoip_country_code_by_name( $_SERVER['REMOTE_ADDR'] );

if( in_array($cc, $servers) ) {
    $server = $servers[$cc][rand(0,count($servers[$cc]))];
} else {
    $server = '5.5.5.5';
}

header('Location: ' . $server);
exit();

答案 1 :(得分:0)

答案 2 :(得分:-1)

您可以在PHP中编写一个非常简单的反向代理。您基本上只需获取请求参数并使用curl或file_get_contents传递它们。例如:

<?php
  $external_url = 'http://www.anotherserver.com' . $_SERVER['REQUEST_URI'] . $_REQUEST['QUERY_STRING'];
  print file_get_contents($external_url);
?>

查看this article了解详情。