2016-07-05 2 views
2

В моей настройке два приложения, развернутые на Nginx, один находится на PHP, а другой - на Python.Nginx PHP-FPM не обслуживает запрос, если потоковая загрузка неактивна

Приложение на основе Python - приложение REST API, развернутое на Nginx с использованием uwsgi. Один API поддерживает загрузку CSV. Файлы CSV в основном имеют размер более 100 МБ. Так что API обеспечивает потоковое скачивание.

PHP-приложение, размещенное на одном и том же Nginx с использованием php-fpm, использует REST API. В случае загрузки CSV PHP-приложение делает запросы к API и обеспечивает потоковое скачивание для последующей потоковой загрузки для пользователя/браузера. Это отлично работает.

Теперь проблема заключается в том, что при загрузке выполняется запрос от PHP-приложения и пытается сделать доступ к другим страницам приложения php, тогда он не загружает (отклик) страницы, если я отменяю запрос на загрузку, а затем загружает/отсылает страницы (-ы) мгновенно.

В API, если при загрузке потоковой передачи выполняется другой ответ API запросов, поэтому нет проблемы с приложением python.

Но для PHP приложение не работает. Пробовал различные параметры, такие как change_processes, worker_connections в Nginx. Также конфигурация менеджера пула в php-fpm. Нет успеха.

Чтобы запросить API REST из приложения PHP, я использовал PHP curl i.e curl.

Пожалуйста, помогите.

ответ

0

Наконец-то проблема решена, это было главным образом проблема блокировки сеанса.

Вы должны иметь функцию обратного вызова для обработки закрытия сессии, а также для записи полученных данных,

функция

Обратный звонок:

function curlWriteHandler($ch, $data) 
    { 
     echo $data; 
     session_write_close(); 
     return strlen($data); 
} 

& набор обратного вызова, как,

curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'curlWriteHandler'); 

Got справки следующие ответы/ссылка (я не знаю, его хорошая идея указать ссылку в ответе, еще)

What for do we use CURLOPT_WRITEFUNCTION in PHP's cURL?

How use CURLOPT_WRITEFUNCTION when download a file by CURL

& https://curl.haxx.se/libcurl/c/CURLOPT_WRITEFUNCTION.html

Смежные вопросы