PHP Жрет: ошибка cURL 52: Пустой ответ от сервера - В чем может быть причина? - PullRequest
0 голосов
/ 03 марта 2020

Я использую Guzzle , чтобы сделать запрос прокси, как это:

Frontend (Vue/Axios) -> proxy.php -> REST API

Мне нужен прокси, чтобы включить заголовки Basi c auth, чтобы получить доступ к REST API (из kirby cms), и я не хочу, конечно, включать учетные данные в мой веб-интерфейс.

Это работало нормально, пока я не начал использовать несколько обещаний (4 одновременных запроса к 4 различным конечным точкам) ). Теперь я перезагружаю свой локальный сервер MAMP pro, затем я могу выполнить запросы один раз , и они работают. Каждый раз, когда я перезагружаю страницу после первого раза, я ничего не получаю обратно в топор ios, потому что, очевидно, мой сервер ничего не возвращает:

[02-Mar-2020 22:18 : 17 Европа / Париж] PHP Неустранимая ошибка: Uncaught GuzzleHttp \ Exception \ ConnectException: ошибка cURL 52: Пустой ответ от сервера (см. https://curl.haxx.se/libcurl/c/libcurl-errors.html) в папке / Users / USER / Documents / github / /raz/cms/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:200 Трассировка стека:

# 0 / Пользователи / ПОЛЬЗОВАТЕЛЬ / Документы / github / folder / raz / cms / vendor / guzzlehttp / guzzle / src / Handler / CurlFactory. php (155): GuzzleHttp \ Handler \ CurlFactory :: createRejection (Объект (GuzzleHttp \ Handler \ EasyHandle), Array)

# 1 / Users / USER / Documents / github / folder / raz / cms / vendor / guzzlehttp / guzzle / src / Handler / CurlFactory. php (105): GuzzleHttp \ Handler \ CurlFactory :: finishError (Объект (GuzzleHttp \ Handler \ CurlHandler), Объект (GuzzleHttp) \ Handler \ EasyHandle), Object (GuzzleHttp \ Handler \ CurlFactory))

# 2 / Users / USER / Documents / github / folder /raz/cms/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(43): GuzzleHttp \ Handler \ CurlFactory :: fini sh (Объект (GuzzleHttp \ Handler \ CurlHandler), Объект (GuzzleHttp \ Handler \ EasyHandle), Object (GuzzleHttp \ Handler \ CurlFactory))

# 3 / Users / USER / Documents / githu в / Users / USER / Documents / github / folder / raz / cms / vendor / guzzlehttp / guzzle /src/Handler/CurlFactory.php в строке 200

Мой первый вопрос : Почему сервер ничего не возвращает? Это какая-то память, которая израсходована? А перезапуск сбрасывает вещи? (Мой php 7.2 лимит памяти составляет 128 МБ) Любая другая идея?

Мой второй вопрос : Что я могу сделать, чтобы решить эту проблему?

Спасибо за любые намеки! Я не очень опытен с PHP и серверными вещами, так что, возможно, я просто упускаю некоторые простые вещи ...

Приветствия и заранее спасибо.

PS: Я в курсе что есть другие посты с таким же названием, но решения там не помогли ...

------ UDPATE -----

Я хотел посмотреть что произойдет, если я не сделаю топор ios вызовами прокси одновременно, но в шахматном порядке. Я всегда жду одного звонка, чтобы закончить, прежде чем начать следующий. Это занимает время, но в конечном итоге возвращает все 4 ответа.

Если я жду возвращения всех 4 ответов, я могу перезагрузить страницу и снова выполнить весь процесс. Если я начну перезагружаться, скажем, после 2 запросов (запросы 3 и 4 все еще ожидают ответа), мой PHP сервер аварийно завершится, и я начну получать сообщение об ошибке выше.

Так что вопрос 3 будет выглядеть так: Как я могу убедиться, что все запросы отменены? И почему это приводит к остановке моего сервера?

...