Почему apache + nginx при обработке изображений отдает 500 ошибку?
Есть php скрипт, который выполняет обработку большого количества изображений (ресайз, наложение вотермарков и тд.). Проблема в том, что скрипт по истечению 40 минут работы отдает 500 ошибку, а затем, с каждым последующим запуском отваливается еще раньше, хотя таймаут на выполнение запроса стоит около часа. В логи пишет upstream prematurely closed connection while reading response header from upstream
В самом скрипте после обработки каждого каталога очищается дисковый кэш
Как можно решить данную проблему, не прибегая к крону и/или запуску скрипта непосредственно на сервере?
Запись в логах nginx «upstream prematurely closed connection while reading response header from upstream» означает именно преждевременное закрытие соединение проксируемого сервера, то есть ошибку в ходе выполнения скрипта. Смотрите логи самого скрипта или апача. Либо скрипту не хватает ресурсов, либо каких-то библиотек/модулей, либо в самом коде содержатся ошибки.
Кстати, код состояния 500 (Internal server error) как бы намекает на ошибку. Если проксируемый сервер не отвечает слишком долго, возвращается код состояния 504 (Gateway timeout).