cURL无法从运行Varnish Cache的服务器下载图像文件

时间:2014-10-03 05:27:22

标签: php curl varnish

我有以下PHP脚本在99%的时间内完美运行。但它不会从我认为运行Varnish Cache的这一台服务器下载图像。

<?php

$imglink = 'http://www.dirtrider.com/wp-content/uploads/2014/10/WD-10_1_14-001.jpg';

$ch = curl_init($imglink);
$fp = fopen('/home/path/www/tmp/test.jpg', "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

curl_exec($ch);

fclose($fp);

1 个答案:

答案 0 :(得分:1)

如果使用CURL加载该图像,则会出现403 Forbidden错误。您可以非常轻松地解决此错误。只需为CURL请求添加备用用户代理:

curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

等等瞧!它就像一个魅力。看起来像Varnishe Cache阻止使用CURL默认用户代理的CURL请求。