php guzzle [curl] 52 Пустой ответ с сервера

Я делаю следующий запрос, который привел пустой ответ от сервера.

Originate server : AWS ec2 / PHP 5.4 / Guzzle
Remote server : AWS ec2 through elb
CURL info :{
"url":"https:\/\/xxx\/xxx",
"content_type":null,
"http_code":0,
"header_size":0,
"request_size":5292,
"filetime":-1,
"ssl_verify_result":0,
"redirect_count":0,
"total_time":120.987057,
"namelookup_time":0.000277,
"connect_time":0.001504,
"pretransfer_time":0.014271,
"size_upload":2430,
"size_download":0,
"speed_download":0,
"speed_upload":20,
"download_content_length":-1,
"upload_content_length":2430,
"starttransfer_time":60.998147,
"redirect_time":59.988895,
"certinfo":[],
"primary_ip":"54.169.126.111",
"primary_port":443,
"local_ip":"192.168.2.111",
"local_port":39522,
"redirect_url":""}

CURL error : [curl] 52: Empty reply from server [url] https:\/\/xxx\/xxx

Пожалуйста, обратите внимание, что это не происходит все время.

Похоже, что запрос даже не достиг цели (elb), так как не было журналов, относящихся к запросу
1. Проблема с исходным сервером или удаленным сервером?
2. «starttransfer_time»: 60.998147 Может ли это быть основной причиной?

Решения, обходные пути, предложения приветствуются. Спасибо!

4

Решение

Как кажется, запрос никогда не доходил до сервера,
Проверьте на сетевые ошибки. Любая повторная передача TCP / тайм-аут или любые ошибки. Как вы упомянули, отсутствие ответа означает, что это тайм-аут TCP?
Запустите tcpdump и проанализируйте трассировки, основываясь на том, что вы можете решить.

Кроме того, вы можете включить уровень журнала в обоих приложениях на исходном и удаленном серверах.
Проверьте наличие ошибок, например: это из-за высокой нагрузки?

0

Другие решения

В моем случае «пустой ответ от сервера» был вызван исчерпанием памяти на удаленном сервере. В этом случае была выдана фатальная ошибка и запрос был прерван.

Отладка cURL с помощью curl_setopt($h, CURLOPT_VERBOSE, true); не помогло, так как было только «Соединение прервано, повторная попытка нового соединения», а затем «Пустой ответ от сервера». Нам пришлось отлаживать его на стороне удаленного сервера.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector