Estou tentando fazer uma comunicação através de um POST request entre um servidor apache php e um servidor nginx fast api, porém, nenhum retorno é obtido (não há retorno em rotas GET também).
Em testes partindo de um localhost para o servidor nginx, funciona perfeitamente. Porém, quando o mesmo código é executado no servidor de produção, nenhuma resposta é obtida. Causando uma exception de time out do Guzzle após alguns segundos.
Exception gerada:
<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 />
Contudo, os comandos Ping e Traceroute foram utilizados e existem rotas entre os dois servidores.
Nenhuma das máquinas possuem regras de firewall que impeçam qualquer tipo de comunicação entre as portas envolvidas.
Snippet responsável pela request:
$base_url = "127.0.0.1:8000";
$url = $base_url . $rota;
$client = new Client([
'headers' => ['Content-Type' => 'application/json;charset=utf-8']
]);
$payload = json_encode($data);
$response = $client->post($url, ['body' => $payload]);
Apache está ouvindo a porta 80 and Nginx está ouvindo a porta 8000. Ambas estão abertas e funcionando corretamente.
Versão do PHP: 7.4.20