Кстати, было бы интересно посмотреть, как это реализовано. Насколько мне известно, nginx полностью загружает тело пост-запроса прежде, чем отдавать его бэкенду.
Это абсолютно нормальное поведение веб-сервера. POST-запрос завершен тогда, когда пришло количество байт указанное в Content-Length количество байт, если оно еще не пришло, то передавать бекенду как бы и нечего.
Мое мнение, лучший способ (если есть такая возможноть), эти POST-запросы отправлять напрямую на Apache, например, забиндев последний на 8080. Эстеты без сложностей могут запретить из мира все запросы кроме нужных POST.
На самом деле, SWFUpload самое корректное решение. Посудите сами: не тупо ли писать плагин для веб/аппсервера, чтобы пользователю показать, сколько байтиков он загрузил?
Но есть доля правды (помимо того, что существуют жалкие людишки без флэша на компе :) ): swfupload надо допиливать солидно, чтобы все работало как надо (я подразумеваю сессии, токен аутентификации и UI)
Индикатор загрузки файлов в веб-приложениях на Ruby on Rails