[文章作者:张宴 本文版本:v1.0 最后修改:2008.12.15 转载请注明原文链接:http://blog.s135.com/post/389/]

  PHP获取远程网页内容有多种方式,例如用自带的file_get_contents、fopen等函数。
引用
<?php  
echo file_get_contents("http://blog.s135.com/abc.php");  
?>

  但是,在DNS轮询等负载均衡中,同一域名,可能对应多台服务器,多个IP。假设blog.s135.com被DNS解析到72.249.146.213、72.249.146.214、72.249.146.215三个IP,用户每次访问blog.s135.com,系统会根据负载均衡的相应算法访问其中的一台服务器。

  上周做一个视频项目时,就碰到这样一类需求:需要依次访问每台服务器上的一个PHP接口程序(假设为abc.php),查询这台服务器的传输状态。

  这时就不能直接用file_get_contents访问http://blog.s135.com/abc.php了,因为它可能一直重复访问某一台服务器。

  而采用依次访问http://72.249.146.213/abc.phphttp://72.249.146.214/abc.phphttp://72.249.146.215/abc.php的方法,在这三台服务器上的Web Server配有多个虚拟主机时,也是不行的。

  通过设置本地hosts也不行,因为hosts不能设置多个IP对应同一个域名。

  那就只有通过PHP和HTTP协议来实现:访问abc.php时,在header头中加上blog.s135.com域名。于是,我写了下面这个PHP函数:


Tags:
技术大类 » PHP/JS/Shell | 评论(15) | 引用(0) | 阅读(8200)
xk
2008-12-15 08:43
沙发.
Bendy Homepage
2008-12-15 17:33
呵..这个比较简单.但可能会很实用...
FinalBSD Homepage
2008-12-15 17:57
干脆再封装一下,使用gethostbynamel获得这个域名对应的所有IP地址,然后直接用域名调用如何?省的一个个指定IP地址。
itloveboy Email
2008-12-15 18:49
张宴您好!
看了你得很多的文章,学习了很多的知识,首先我向你表示感谢,:)
我看过你的一篇关于 中南民族大学 PHPWIND论坛设计的文章,我在去年也是跟你做得实名认证差不多,但是我的程序还有很多的不足,最重要的也是我想向您请教的,就是关于数据和程序加密的,我看了你的展示里面把学生的和老师的个人数据都加密了,而且把程序也加密了,我想知道这是怎么做到的,如果方便的话,就告诉我一下吧,期待您的回答!
peter Email Homepage
2008-12-19 04:29
感谢博主~
jk
2008-12-20 16:18
这个请求的时候要用HTTP/1.0吧~
玉面修罗 Homepage
2008-12-24 11:14
可以封装一下..
PHP能并发执行这类任务..
特别是当主机数量庞大的时候,并发执行的效率高很多.
不羁的风
2008-12-27 12:51
很享受
稳压器 Homepage
2009-1-19 15:00
不错 支持








稳压器
域名 Homepage
2009-4-10 14:24
这个满实用的,我收藏了··
crystal Homepage
2009-4-10 14:25
这应该是楼主的经验总结的··很不错噢··
鱼儿 Homepage
2009-4-10 14:27
原来楼主叫张宴···哈哈 好新颖的名字·
cykzl
2009-4-23 11:22
博主才毕业两年,有这样的成就佩服、、、、、
图书批发
2009-9-16 09:56
学习一下,研究研究。--图书批发
sinopower
2010-2-5 16:38
dig +short 解析出来,cname不行
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]