我使用curl访问另一个网站的网址,其实这另一个网站是同一个服务器和IP,只是域名不同。而且都是unxix的,
采用同步执行curl_exec,中共耗时不多不少,刚好5秒。用此函数访问另外网站则正常、
我很纳闷。为什么刚好5秒呢?而且这绝不是服务器速度和网速,那边的程序就一条语句 echo "OK" ;
我在浏览器直接调用其网址也是不需要时间的。
请求解答。谢谢
采用同步执行curl_exec,中共耗时不多不少,刚好5秒。用此函数访问另外网站则正常、
我很纳闷。为什么刚好5秒呢?而且这绝不是服务器速度和网速,那边的程序就一条语句 echo "OK" ;
我在浏览器直接调用其网址也是不需要时间的。
请求解答。谢谢
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
//curl_setopt($ch,CURLOPT_TIMEOUT , 10 ); //超时 10 秒
//curl_setopt($ch, CURLOPT_HTTPHEADER,array("Expect:"));
curl_setopt($ch, CURLOPT_COOKIESESSION,1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL , 1);
echo(time()); $file_contents = curl_exec($ch); //执行
echo(time());
以上两个时间差就是5秒。 我在网上搜索好像也有遇到的。说他也是第一次执行总是5秒、
目的网站我试过多个,比如百度。实际上我是用来访问淘宝api的,他们的响应速度是以ms计的。
time curl -4 http://www.baidu.com
结果也是real 0m5.140s
user 0m0.001s
sys 0m0.004s而且每次都是5秒多几十一百多毫秒。我就奇怪了,为什么总是要耗去那5秒。
user 0m0.004s
sys 0m0.000s
似乎要接近答案了,我是使用IP地址,速度奇快。 那么是不是服务器解析域名DNS耗的时呢?熟悉unix系统的帮忙解答,不胜感激。
root 打开 /etc/nsswitch.conf里面大概有一行是
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4注释掉(在前面添加一个#)
然后在下面增加一行
hosts: files dns保存.
然后试吧,祝你好运...
我使用的方式是 安装了 DNSmasq
搞了大半天终于解决。对unix我是很不熟悉,往往就是照做操作,不知缘由。我本就是搞开发的,一遇到系统头就晕。