<?php
$ch = curl_init("https://img1.goodfon.ru/wallpaper/big/1/ca/foto-makro-kartinka-zelenye.jpg");
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_exec($ch);
curl_close($ch);
Получаем:
...
> GET /wallpaper/big/1/ca/foto-makro-kartinka-zelenye.jpg HTTP/1.1
Host: img1.goodfon.ru
Accept: */*
* Empty reply from server
* Connection #0 to host img1.goodfon.ru left intact
Добавляем в наш код одну строчку
curl_setopt($ch, CURLOPT_HTTPHEADER, ['User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:28.0) Gecko/20100101 Firefox/28.0']);
И все сразу работает.
Вывод: сервер (Nginx) дает пустой ответ, если не указан user-agent.