У меня есть API, который делает запрос get, используя curl для получения ответа от внешнего хоста.
Время поиска составляет 5 секунд, что примерно в 10-20 раз медленнее, чем должно быть. Я также пытался file_get_contents(<url>)
, и это также занимает около 5 секунд.
Затем я попытался пропинговать тот же источник через мой VPS (через ssh) и обнаружил, что время поиска DNS для ping также составляло 5 секунд, поэтому я попытался изменить настройку DNS сервера и дал ему другой IP-адрес DNS для использования (google и один другое) и решил проблему для сервера. Теперь пинг с сервера происходит мгновенно и не требует времени для преобразования доменного имени в IP.
Однако запросы curl по-прежнему занимают то же время. 5 секунд для команды API слишком медленно. Что можно изменить здесь? Что я могу сделать, чтобы сделать это быстрее?
Вот журнал curl_info:
[url] => https://www.hungrybulb.com/pony/relay.php/?object=user&user=4fd582133861b5c74b4dab7ba42934aa1&scene=home-tv+series
[content_type] => text/html; charset=UTF-8
[http_code] => 200
[header_size] => 234
[request_size] => 143
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 5.254223
[namelookup_time] => 5.191469
[connect_time] => 5.192079
[pretransfer_time] => 5.246915
[size_upload] => 0
[size_download] => 1
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => 1
[upload_content_length] => 0
[starttransfer_time] => 5.254214
[redirect_time] => 0
[certinfo] => Array
(
)
[request_header] => GET /pony/relay.php/?object=user&user=4fd582133861b5c74b4dab7ba42934aa1&scene=home-tv+series HTTP/1.1
Host: www.hungrybulb.com
Accept: */*
Обновление 1: Тот же код работает довольно быстро, когда я запускаю его на localhost. Я предполагаю, что это потому, что поиск DNS моей локальной машины не занимает много времени.