Отказано в соединении при вызове API, размещенного на Amazon из PHP HTTP-клиента - PullRequest
0 голосов
/ 28 марта 2020

У меня есть API, размещенный на веб-сервере, работающем на amazon EC2 через порт 5001. Когда я вызываю API из браузера chrome, он работает, но когда я вызываю его из PHP клиента HTTP, я получаю ошибку:

Failed to connect to [my public domain].compute.amazonaws.com port 5001: Connection refused
  • Веб-сервер работает по HTTP, а не по HTTPS.
  • Для группы безопасности экземпляра EC2 я добавил правило для Custom TCP для порта 5001.
  • Когда я использую тот же HTTP-клиент на другом веб-сайте, например www.google.com, он работает нормально.

ниже приведен мой PHP исходный код для запроса размещенного в EC2 API.

<?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; }
?>

Что не так с этой настройкой?

1 Ответ

0 голосов
/ 28 марта 2020

Он был восстановлен путем открытия порта 5001 для исходящих запросов на веб-сервере PHP, который был заблокирован брандмауэром.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...