У меня есть 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; }
?>
Что не так с этой настройкой?