2

我的网站上有一个图像代理,它在我的域的 https 上提供图像,以允许完全信任 SSL 连接。

以这个链接为例:

https://www.mylesgray.com/lastfm/85982517.png

这通过我的域上的 HTTPS 提供来自 last.fm 的 CDN 的专辑插图,该 CDN 在 HTTP 上。

然而,它长期缓慢,我不知道为什么,它正在访问的页面是:

http://userserve-ak.last.fm/serve/64s/85982517.png

如您所见,速度差异很大,虽然我不知道为什么我的脚本这么慢,但它的操作非常简单:

$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 脚本)进行调试,导致速度如此缓慢?

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

https://mylesgray.com

https://mylesgray.com/blog

第二个使用代理来提供图像。

4

1 回答 1

1

由于您的网络服务器存在访问 CDN 的问题,因此它们可能会限制您,或者您的网络服务器上存在 DNS 解析问题。

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

祝你的项目好运。

于 2013-03-14T13:13:48.143 回答