Страницы

Поиск по вопросам

вторник, 16 июля 2019 г.

Почему apache + nginx при обработке изображений отдает 500 ошибку?

Есть php скрипт, который выполняет обработку большого количества изображений (ресайз, наложение вотермарков и тд.). Проблема в том, что скрипт по истечению 40 минут работы отдает 500 ошибку, а затем, с каждым последующим запуском отваливается еще раньше, хотя таймаут на выполнение запроса стоит около часа. В логи пишет upstream prematurely closed connection while reading response header from upstream
У Apache
max_execution_time 3600 max_input_time 3600 upload_max_filesize 512M post_max_size 512M memory_limit 512M
У nginx
proxy_connect_timeout 3600s proxy_send_timeout 3600s proxy_read_timeout 3600s proxy_buffer_size 512k proxy_buffers 512 4096k proxy_busy_buffers_size 4096k proxy_temp_file_write_size 4096k client_max_body_size 30m client_body_buffer_size 4096k large_client_header_buffers 8 32k
В самом скрипте после обработки каждого каталога очищается дисковый кэш. Как можно решить данную проблему, не прибегая к крону и/или запуску скрипта непосредственно на сервере?


Ответ

Оказалось что apache съедал всю оперативку, но в лог ничего не писал, а писал nginx. gc_collect_cycles() исправил ситуацию.

Комментариев нет:

Отправить комментарий