【发布时间】:2015-11-05 05:09:22
【问题描述】:
我正在发出以下请求,导致服务器回复空。
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 这可能是根本原因吗?
欢迎提出解决方案、解决方法和建议。谢谢!
【问题讨论】:
-
您多久收到一次失败?是否可以单独连接到 ELB 后面的所有节点以测试连通性?根据您提供的信息,我觉得这像是间歇性的网络问题。
-
我们每分钟收到大约 6000 个请求,大约 40-50 个请求失败。所有这些失败的请求都转移到后台进程进行重试,最终成功。我们没有注意到 cpu 或源集群或远程集群中的内存。 elb 访问日志上没有 4XX / 5XX 的迹象。
标签: php curl amazon-ec2 guzzle amazon-elb