Командная строка CURL работает, но с php библиотека curl возвращает тайм-аут - PullRequest
0 голосов
/ 04 марта 2020

У меня есть Laravel приложение, которое работает с Docker внутри виртуальной машины в Azure на производстве. В качестве среды разработки я использую ту же среду Docker локально на Ubuntu.

Существует функция, которая выполняет POST через CURL на другой сервер, передавая SQL в качестве параметра для этого сервера запросить базу данных и вернуть ответ. В настоящее время ответом является просто путь к файлу, созданному с результатами запроса.

Проблема :
При выполнении этого CURL в производственной среде (Laravel + Docker + Azure), если запрос в базе данных занимает в среднем более 4 минут, тайм-аут, определенный на момент CURL, заканчивается, даже если запрос REAL (протестированный через Insmonia или среду разработки) занимает меньше времени, чем заданное время ожидания.

Важные примечания :

  1. Проблема возникает только в производственной (Laravel + Docker + Azure), работающей в местная среда разработки это работает.
  2. Используя любой клиентский инструмент отдыха (Insomnia, Postman), он работает нормально.
  3. Запуск собственного curl (командной строки) работает в производственной среде:
curl --request POST \
  --url http: // ip: port / route \
  --data '{"sql": "select 1 from dual"}'
Запуск собственного родного скручивания командной строки в функции PHP "exe c ()" в производственной среде также работает. Используется библиотека CURL GuzzleHttp версии 6.x Проверено с родным PHP curl curl () также не работает в производстве
...