通过函数file_get_contents请求耗时长,源站地址正常

2022-04-24 14:37:17 浏览数 (1)

问题描述:

cdn地址通过函数file_get_contents请求耗时长,源站地址正常,需要确认原因。 cdn地址: http://cdn.xxxx.com/badman.txt 源站地址: http://yuan.xxxx.com/badman.txt

测试demo:
代码语言:javascript复制
<?php
$time=time();
echo "cdn-开始时间:".($time);
echo "---";
echo file_get_contents("http://cdn.xxxx.com/badman.txt");
echo "---";
$i=time();
echo "cdn-结束时间:".($i);
echo "-----------------------------";
$a=time();
echo "源-开始时间:".($a);
echo "---";
echo file_get_contents("http://yuan.xxxx.com/badman.txt");
echo "---";
$b=time();
echo "源-结束时间:".($b);
?>
测试结果:

原因:

cdn域名设置会有超时时间:60s,并且响应为keep- alive状态,所以 PHP 在接收到数据之后, 维持了一段时间, 一直等到超时, 才返回, 所以在设置默认超时时间的情况下会比较慢。

解决方案:

请求之前添加如下部分即可:

代码语言:javascript复制
ini_set('default_socket_timeout', 1); //设置一下 默认超时时间

验证结果:

参考文章:

https://www.php.cn/blog/detail/20695.html

0 人点赞