PHP CURL не может соединиться между 2 Docker-сайтами - PullRequest
0 голосов
/ 27 ноября 2018

У меня проблема с двумя док-сайтами, site1.example.com и api.example.com.Оба сайта размещены на моей локальной машине через докер.Я пытаюсь сделать запрос к api.example.com через curl, вот так:

$curl_handle=curl_init();
  curl_setopt($curl_handle,CURLOPT_URL,'http://api.example.com');
  curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,1000);
  curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl_handle, CURLOPT_HEADER, 1);
  curl_setopt($curl_handler, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($curl_handle, CURLOPT_PROXY, true);
  curl_setopt($curl_handle, CURLOPT_VERBOSE, true);
  curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, false);
  $result = curl_exec($curl_handle);
  if($result === false) {
     $error = curl_error($curl_handle);
     print_r($error);
  }
  print_r($result);
  curl_close($curl_handle);

Вот что происходит:

  1. Если я отключаю CURLOPT_PROXY, я получаюошибка соединения отклонена.
  2. Я получаю результат = false при включенном прокси, за исключением того, что оно не выдает сообщение об ошибке
  3. Это мои журналы докера:

[27-Nov-2018 18:23:04] WARNING: [pool www] child 352 said into stderr: "* Rebuilt URL to: http://api.example.local/?is_deleted=0"
[27-Nov-2018 18:23:04] WARNING: [pool www] child 352 said into stderr: "*   Trying 0.0.0.1..."
172.xx.x.x -  27/Nov/2018:18:23:03 +0000 "GET /index.php" 200
[27-Nov-2018 18:23:04] WARNING: [pool www] child 352 said into stderr: "* TCP_NODELAY set"
[27-Nov-2018 18:23:04] WARNING: [pool www] child 352 said into stderr: "* Immediate connect fail for 0.0.0.1: Invalid argument"
[27-Nov-2018 18:23:04] WARNING: [pool www] child 352 said into stderr: "* Closing connection 0"

Но тот же код и отлично работает на производстве.Я нахожусь на php: 7.2-fpm Любая идея, что не так с использованием curl из докера?

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