Amazon web services 外部Web服务器可以';t与EC2和API通信
说到人际网络,我真的不适合这里 我有一台运行linux的EC2服务器,它运行着一个活动的FlaskAPI 我在共享hostgator服务器上有一个PHP函数:Amazon web services 外部Web服务器可以';t与EC2和API通信,amazon-web-services,flask,networking,amazon-ec2,Amazon Web Services,Flask,Networking,Amazon Ec2,说到人际网络,我真的不适合这里 我有一台运行linux的EC2服务器,它运行着一个活动的FlaskAPI 我在共享hostgator服务器上有一个PHP函数: function sendAPI($threadid, $teamid) { $url = "http://ec2-...amazonaws.com:9999/api2?id1=" . $teamid . "&thread=" . $threadid; $ch = curl_init(); $optArr
function sendAPI($threadid, $teamid) {
$url = "http://ec2-...amazonaws.com:9999/api2?id1=" . $teamid . "&thread=" . $threadid;
$ch = curl_init();
$optArray = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true
);
curl_setopt_array($ch, $optArray);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
类似功能在电报API服务器上正常工作:
function sendMessage($chatID, $messaggio, $token) {
$url = "https://api.telegram.org/bot" . $token . "/sendMessage?chat_id=" . $chatID;
$url = $url . "&text=" . urlencode($messaggio);
$ch = curl_init();
$optArray = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true
);
curl_setopt_array($ch, $optArray);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
导航到http://ec2-...amazonaws.com:9999/api2?id1=1&thread=1
在我自己的web浏览器中,API成功地获取了请求
EC2实例上的入站规则:
注意,网站IP,同样的IP在CPanel中列出:
域名:novociv.org顶级域名:org(组织)DNS
查找IP地址:108.167.142.88
从我有限的网络知识来看,这一切都应该正常工作。然而,当调用PHP函数时,它返回一个空结果,EC2服务器不响应。我不知道如何从这里排除故障,因为我不知道在哪里可以找到任何错误消息。我猜EC2只是在阻止来自外部服务器的流量,但我不知道我的入站规则有什么问题(如果有),因为EC2成功地从我的笔记本电脑接收请求。结果是hostgator默认情况下没有打开9999端口。通过请求此服务器上的hostgator打开端口9999,或者将flask应用程序移动到已打开的其他端口,可以解决此问题。如果[暂时]更改安全组以允许0.0.0.0/0通信到端口9999,请求会通过吗?这不是一个可以部署的安全解决方案,但至少您会知道您的请求被阻止的位置。PHP客户端的出站IP可能与域的DNS查找IP不同。