当通过https访问某些资源时,我的
PHP的file_get_contents挂起60秒有困难.
我不确定它是客户端还是服务器端问题.
在客户端
在命令行上工作:
$URL="https://example.com/some/path"
$wget "$URL" -O /dev/null -q # takes a few milliseconds
$curl "$URL" >/dev/null # takes a few milliseconds
$php -r 'file_get_contents("'"$URL"'")' # takes 61s!
在服务器上
一条线被立即写入Apache(2.4)访问日志以获取正确的SSL vhost,并且响应为200(成功).这令人困惑的时间表令人困惑:
客户端触发了> 0s php的file_get_contents
> 0.2s服务器的apache访问日志记录成功(200).
> ???谁知道这里发生了什么?
> 60.2s客户端收到该文件.
从Ubuntu 14.04和Debian 8客户端测试.有问题的资源都在运行带有ITK worker和PHP 5.6的Apache 2.4的Debian 8服务器上.我已经尝试了防火墙关闭(默认的ACCEPT策略),所以不是这样.铌.服务器已禁用IPv6,这可能是相关的,因为当我首先尝试IPv6时,我注意到这样的超时.但是被访问的主机没有AAAA记录,并且apache日志显示(a)SSL已建立好并且(b)请求有效并已收到.