Я пытаюсь POST-запросить мой API, который находится на сервере nginx, с сервера apache, но ответа не получено.
Запросы с локального хоста на тот же сервер nginx работают нормально. Но когда тот же фрагмент выполняется на рабочем сервере, мы получаем тайм-аут, и Guzzle выдает исключение через несколько секунд.
Исключение:
<br />
<b>Fatal error</b>: Uncaught GuzzleHttp\Exception\ConnectException: cURL error 7: Failed connect to 192.140.88.50:80; Connection timed out (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for 192.140.88.50/infotech/selecionar_cidades in /var/www/html/abmcash.com.br/web/abmNew2/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:210
Stack trace:
#0 /var/www/html/abmcash.com.br/web/abmNew2/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(158): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 /var/www/html/abmcash.com.br/web/abmNew2/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(110): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 /var/www/html/abmcash.com.br/web/abmNew2/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Objec in <b>/var/www/html/abmcash.com.br/web/abmNew2/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php</b> on line <b>210</b><br />
Команды Ping и Traceroute были выполнены, и обе успешно.
Ни на одной из машин нет правила брандмауэра, запрещающего любую связь между ними.
Это фрагмент, который отправляет запрос:
$base_url = "127.0.0.1:8000";
$url = $базовый_url. $рота;
$ клиент = новый клиент ([
'headers' => ['Content-Type' => 'application/json;charset=utf-8']
]);
$payload = json_encode($данные);
$response = $client->post($url, ['body' => $payload]);
Apache прослушивает порт 80, а Nginx прослушивает порт 8000, и оба они запущены и работают.
Версия PHP: 7.4.20