我的网站上有一个图像代理,可以通过我的域中的https提供图像,以便完全信任SSL连接。
以此链接为例:
https://www.mylesgray.com/lastfm/85982517.png
这是来自last.fm的CDN上的专辑封面,该CDN位于HTTP上,通过我域上的HTTPS。
然而长期缓慢,我无法弄清楚原因,它访问的页面是:
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脚本),这会导致这么慢?
比较这两个页面时,您可以看到效果:
第二个使用代理服务图像。
答案 0 :(得分:1)
由于您的网络服务器无法访问CDN,因此它们会限制您,或者您的网络服务器上存在DNS解析问题。
因此,您的网络服务器必须等待某个DNS请求的超时,才能向另一台服务器发出另一个DNS请求以获得答案......这需要很长时间。
祝你的项目好运。