如何诊断慢速php图像代理?

如何诊断慢速php图像代理?,php,proxy,nginx,Php,Proxy,Nginx,我在我的站点上有一个图像代理,它通过https从我的域提供图像,以允许SSL连接完全可信 以该链接为例: 这服务于last.fm的CDN中的相册插图,该CDN位于HTTP上,通过我的域上的HTTPS 然而,它的速度非常慢,我不知道为什么,它访问的页面是: 正如您所看到的,速度差异非常大,尽管我无法解释为什么我的脚本如此缓慢,但它的操作非常简单: $args = $_GET['q']; list($img) = explode("/", $args); header('Content-Typ

我在我的站点上有一个图像代理,它通过https从我的域提供图像,以允许SSL连接完全可信

以该链接为例:

这服务于last.fm的CDN中的相册插图,该CDN位于HTTP上,通过我的域上的HTTPS

然而,它的速度非常慢,我不知道为什么,它访问的页面是:

正如您所看到的,速度差异非常大,尽管我无法解释为什么我的脚本如此缓慢,但它的操作非常简单:

$args = $_GET['q'];
list($img) = explode("/", $args);

header('Content-Type: image/png');
echo file_get_contents('http://userserve-ak.last.fm/serve/64s/' . $img);
它所做的只是抓住图像并重新服务

在整个堆栈(从web服务器到php脚本)的哪个阶段,有什么方法可以调试导致这一过程如此缓慢的原因

比较这两个页面时,您可以看到这一效果:


第二种方法是使用代理来服务映像。

由于您的Web服务器在访问CDN时遇到问题,要么它们限制了您的访问,要么您的Web服务器上存在DNS解析问题

因此,您的Web服务器必须等待某个DNS请求超时,才能向另一个服务器发出另一个DNS请求以获取答案。。。这需要很长时间


祝您的项目好运。

前面提到了CDN站点可能存在的限制(来自1个IP的大量请求),为什么选择使用PHP进行代理
nginx
有一个代理模块?我首先要在
文件获取内容()之前/之后记录
microtime()
。我怀疑你们会看到他们在限制你们。看起来是这样的——“在get请求的开始和结束之间的10.225450992584秒内什么都没做”。。。