Я настраиваю приложение vuejs и несколько приложений Laravel, которые должны взаимодействовать между ними. Связь между приложениями Laravel осуществляется через запрос cUrl. На данный момент все на моих машинах разработки (Last MacBook Pro - Mac OS Majove) с помощью MAMP Pro (PHP 7.3). Проблема в том, что когда я делаю одновременные запросы, у меня было:
CURL error 28 communication timeout ... with 0 bytes received.
Это если, конечно, не проблема тайм-аута (я пробовал с 2 минутами на всех приложениях и всех тайм-аутах - тот же результат). Поскольку я работаю с API, сеанса PHP нет (поэтому нет блокировки файла сеанса).
Кажется, что соединение cUrl закрыто, но я не знаю почему (я сам не закрываю его -и это не достигает тайм-аутов (подключение / чтение / глобальный)).
Более наглядно:
vuejs --ajax1--> Laravel A --cUrl--> Laravel B --cUrl--> Laravel C
vuejs --ajax2--> Laravel A --cUrl--> Laravel B --cUrl--> Laravel C
vuejs <--500-- Laravel A --X-- Laravel B <---- Laravel C
vuejs <--500-- Laravel A --X-- Laravel B <---- Laravel C
ajax1 and ajax2 are sent at the same time.
Работает, если ajax1
и ajax2
отправляются НЕ одновременно.
Что я знаю:
- Связь прерывается между
Laravel A
и Laravel B
, но Laravel B
выполняет код и возвращает ответ (который так и не был получен, потому что, я думаю, соединение закрыто?). Но оба запроса удаляются Laravel C
и Laravel C
также выполняется.
Что я пробовал:
- Apache и nginx
- Отключить брандмауэр
- Увеличение всех тайм-аутов (PHP - cUrl)
- Увеличение лимита памяти (PHP)
- cUrl
CURLOPT_FORBID_REUSE
и CURLOPT_FRESH_CONNECT
options - Изменение имени локального домена и тдлприложений Laravel
Что мне интересно:
- Существует ли максимальное количество запросов, которые я могу выполнить одновременно с помощью cUrl на одной и той же машине? конечно, установите
CURLOPT_MAXCONNECTS
на 20 - безуспешно)? - Есть ли конфигурация PHP.ini, которую я пропустил?
- Возможно, проблема в том, что все эти приложениябегать на одной машине? Если да, то почему?
- Оба сервера (nginx и Apache) ограничивают соединение с одного IP? (поскольку все приложения находятся на одном компьютере, все они имеют одинаковый IP-адрес).