У меня есть Laravel приложение, которое работает с Docker внутри виртуальной машины в Azure на производстве. В качестве среды разработки я использую ту же среду Docker локально на Ubuntu.
Существует функция, которая выполняет POST через CURL на другой сервер, передавая SQL в качестве параметра для этого сервера запросить базу данных и вернуть ответ. В настоящее время ответом является просто путь к файлу, созданному с результатами запроса.
Проблема :
При выполнении этого CURL в производственной среде (Laravel + Docker + Azure), если запрос в базе данных занимает в среднем более 4 минут, тайм-аут, определенный на момент CURL, заканчивается, даже если запрос REAL (протестированный через Insmonia или среду разработки) занимает меньше времени, чем заданное время ожидания.
Важные примечания :
- Проблема возникает только в производственной (Laravel + Docker + Azure), работающей в местная среда разработки это работает.
- Используя любой клиентский инструмент отдыха (Insomnia, Postman), он работает нормально.
- Запуск собственного 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 ()
также не работает в производстве