代码之家  ›  专栏  ›  技术社区  ›  Adham Enaya

从PHP HTTP客户端调用Amazon上托管的API时,连接被拒绝

  •  0
  • Adham Enaya  · 技术社区  · 6 年前

    我有一个API托管在web服务器上,运行在AmazonEC2端口5001上。当我从chrome浏览器调用API时,它可以工作,但当我从PHP HTTP客户端调用它时,我得到了错误:

    Failed to connect to [my public domain].compute.amazonaws.com port 5001: Connection refused
    
    • web服务器在HTTP而不是HTTPS上运行。
    • 对于EC2实例安全组,我添加了 Custom TCP
    • 当我在其他网站(如www.google.com)上使用相同的HTTP客户端时,效果很好。

    <?php
    header('Content-Type: application/json');
    $url = $_GET['url'];
    $ch = curl_init();
    
    
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $server_output = curl_exec($ch); 
    
    if (curl_errno($ch)) { 
       print curl_error($ch); 
    } 
    curl_close($ch); 
    
    
    if ($server_output == "OK") { echo "ok"; } else { echo $server_output; }
    ?>
    

    0 回复  |  直到 6 年前
        1
  •  0
  •   Adham Enaya    6 年前

    通过为被防火墙阻止的PHPWeb服务器上的传出请求打开端口5001,它被重新批准。

    推荐文章