带有完整url到同一服务器的file_get_contents与php 7一样非常慢,因为最近在ubuntu 16.04上

时间:2017-03-27 18:28:05

标签: php ubuntu nginx file-get-contents php-7

可能与以下内容有关:

https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1674733

只是一个想法?可能不是,因为最终它确实有效。

过去非常快,对于一个小图像,现在需要7秒到26秒,也可以在本地存储。

"只需将代码更改为不通过http"好吧,我宁愿不重写我用来解决一个突然浮出水面的问题的库。如果我在本地开发机器上本地执行相同的调用,则需要一个分秒。

myapp/public/caup_laravel/vendor/intervention/image/src/Intervention/Image/AbstractDecoder.php

代码:

   $options = array(
        'http' => array(
            'method'=>"GET",
            'header'=>"Accept-language: en\r\n".
            "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2\r\n"
      )
    );

    $context  = stream_context_create($options);
    if ($data = @file_get_contents($url, false, $context)) { //VERY slow call
        return $this->initFromBinary($data);
    }

网址的示例是:

http://dev.causepick.org/caup_api/uploads/causes/52/cropped-436535-a42b2.jpg

通过浏览器访问图像是即时的,例如如果我在地址栏中输入网址

2 个答案:

答案 0 :(得分:1)

我收到了digitalocean我的服务器提供商的回复

  

我们已收到有关影响使用用户的DNS中断的报告   谷歌的DNS服务器,这是我们所有图像的默认设置。这个   droplet在受影响的IP范围内,因此很可能与   问题。

     

您可以尝试使用OpenDNS的服务器,208.67.222.222和   208.67.220.220,作为主要或备份名称服务器?这应该可以解决您面临的问题。你可以暂时这样做(它会   通过编辑/etc/resolv.conf查看,一直持续到下次重启   像这样:

nameserver 208.67.222.222  
nameserver 208.67.220.220 
  

到目前为止,所有内容都指出这是谷歌的一个问题,   从我们的192.241.128.0/17范围影响基于UDP的DNS查询。   最终,查询可以回退到TCP,这允许它们   成功,但需要几秒钟来解释你的缓慢   看到。我们已经看到了谷歌限速或阻止选择性IP范围   以前,很难确定。我们已经达成了   我们正在等待回复和解决方案。

这很有用

答案 1 :(得分:0)

检查您的/etc/resolv.conf文件。很长一段时间的延迟听起来很像你在那里有两个没用的名字服务器。