Пользователи загружают фотографии на мой сайт, используя среду выполнения HTML5 plupload, которая отправляет файлы в скрипт php по адресу /upload-process
.
Обычно это работает нормально, но иногда вызов /upload-process
время вышло.
Самая первая строка кода в /upload-process
записывает в файл журнала, и нет записей, соответствующих 408
s, поэтому я не думаю /upload-process
когда-либо даже успешно достигается - но 408
s присутствуют в моем файле журнала ошибок nginx.
Принцип работы plupload заключается в том, что пользователь может добавить сотни фотографий в очередь, а затем нажать «загрузить» и оставить все как есть. Что мне кажется странным в 408-х файлах, так это то, что как только один из них будет, этот пользователь получит по одному на каждый файл в очереди.
Например, вчера вечером кто-то поставил очередь в 17:30, а с этого момента до 7:00 сегодня утром около тысячи. 408
s произошло. В файле журнала все они отображаются по истечении 60 секунд.
При этом сайт остается абсолютно функциональным для всех остальных. Я сам довольно часто использовал его в то время, как и 200 других людей.
Итак, я предполагаю, что рассматриваемый пользователь привязан к некоторому дочернему процессу keepalive (я очень мало знаю о том, как работает HTTP), и этот дочерний процесс умер и забрал с собой все его последующие запросы - это звучит правдоподобно? Я полагаю, это может быть процесс php-fpm, а не nginx ...?
Какие шаги я могу предпринять, чтобы исправить это или, по крайней мере, отладить это, чтобы лучше понять, что пошло не так?
Большое спасибо!