Amazon web services 外部Web服务器可以';t与EC2和API通信

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

说到人际网络,我真的不适合这里

我有一台运行linux的EC2服务器,它运行着一个活动的FlaskAPI

我在共享hostgator服务器上有一个PHP函数:

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不同。