外部Web服务器无法与EC2 flask API通信

时间:2020-03-22 17:05:18

标签: amazon-web-services flask networking amazon-ec2

在网络方面,我真的不在这里。

我有一台运行linux的EC2服务器,该服务器正在运行一个活动的烧瓶API。

我在共享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时,API成功接收请求。

EC2实例上的入站规则: Server accepts SSH and API call from me, and accepts info from Telegram API servers. Should accept from external web server, but does not.

注意,网站IP,也在CPanel中列出了相同的IP:

域名:novociv.org顶级域:ORG(组织)DNS 查找IP地址:108.167.142.88

根据我对网络的有限了解,这应该都能正常工作。但是,调用PHP函数时,它将返回空结果,并且EC2服务器不响应。我不知道如何从这里进行故障排除,因为我不知道在哪里可以找到任何错误消息。我猜想EC2只是在阻止来自外部服务器的流量,但是我不知道入站规则出了什么问题(如果有的话),因为EC2成功地从笔记本电脑中提取了请求。

1 个答案:

答案 0 :(得分:0)

事实证明,hostgator默认没有打开端口9999。可通过在该服务器上请求hostgator打开端口9999或将flask应用程序移至已打开的其他端口来解决该问题。