Время поиска PHP cURL занимает около 5 секунд - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть 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 моей локальной машины не занимает много времени.

1 Ответ

0 голосов
/ 20 сентября 2018

Проблема была с DNS-сервером, который мой сервер использовал в качестве основного. Я использовал 8.8.8.8 в качестве основного и 8.8.4.4 в качестве дополнительного. Я удалил 8.8.8.8 и сделал 8.8.4.4 в качестве основного и добавил еще один бесплатный DNS в качестве дополнительного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...