GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

POST funciona local mas gera time out em produção

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

//