Comments 23
Пригодится
0
> надо в исходнике модуля (ngx_http_uploadprogress_module.c) в строчке 1151 исправить ngx_parse_size на ngx_parse_offset.
Отправьте plz это сообщение автору модуля.
Отправьте plz это сообщение автору модуля.
0
автор модуля — таинственная личность. Так и не смог найти его email.
0
sysoev.ru/mail.html
igor собака sysoev точка ру
igor собака sysoev точка ру
-2
А то, что на странице, на которую вы дали ссылку — не оно?
Valery Kholodkov valery+nginx@grid.net.ru
Valery Kholodkov valery+nginx@grid.net.ru
0
brice+lklm@daysofwonder.com — его мыло, имя стоит вот здесь — wiki.codemongers.com/NginxModules
0
в избранное. пригодиться.
0
Спасибо автору за столь полезный топик.
0
Во-первых, там чёрным по белому написано «it is not intended to be deployed on production systems.»
А во-вторых, продукт надо использовать с очень большой оглядкой, ибо работает он просто как нгинх, а именно: принимает запрос, пишет его на диск, потом считывает с диска и кормит его в нижестоящий сервер, который в свою очередь снова пишет его на диск. Если кто ещё не понял, то при приёме гигабайтного файла нагрузка на жёсткий диск будет составлять 2 Гб на запись и 1 Гб на чтение.
Мы сей вопрос решили самостоятельно написанным демоном, который принимает файл, укалдывает на диск, а затем просто проксирует данные апачу. Естественно, upload progress при этом работает. А также работает приёмка файлов размером больше 4Гб. Что нгинху и апачу совсем не по зубам.
А во-вторых, продукт надо использовать с очень большой оглядкой, ибо работает он просто как нгинх, а именно: принимает запрос, пишет его на диск, потом считывает с диска и кормит его в нижестоящий сервер, который в свою очередь снова пишет его на диск. Если кто ещё не понял, то при приёме гигабайтного файла нагрузка на жёсткий диск будет составлять 2 Гб на запись и 1 Гб на чтение.
Мы сей вопрос решили самостоятельно написанным демоном, который принимает файл, укалдывает на диск, а затем просто проксирует данные апачу. Естественно, upload progress при этом работает. А также работает приёмка файлов размером больше 4Гб. Что нгинху и апачу совсем не по зубам.
0
А что значит «кормит его в нижестоящий сервер»? У меня nginx и есть нижестоящий, т. е. я указал в статье, я юзаю upload module под nginx, который выдирает файл из запроса и отдает обработчику лишь информацию о файле. Как в общем правильно заменил PilgrimX182.
0
Приношу извинения, невнимательно читал. Не заметил про Nginx upload module. Подскажите, а проверку на суммарный объём запроса можно организовать перед приёмкой или только после? (например, для платных пользователей одно ограничение, для бесплатных — другое)
Просто классическая схема работы не позволяет оборвать соединение до того как весь запрос придёт.
Просто классическая схема работы не позволяет оборвать соединение до того как весь запрос придёт.
0
Теоритически да. nginx, получая запрос, может проверить принятый заголовок content_length, правильно я понимаю? И его уже сравнивать с ограничениями. А чтобы разграничить платных и безплатных, нужна будет прослойка из php. Иначе, думаю, никак.
0
sysoev.ru/nginx/docs/http/ngx_http_core_module.html#client_max_body_size
Будет обрывать сразу. Можно сделать два аплоад локейшена типа upload_free, upload_prem с разными лимитами. Скорость аплоада по нормальному ограничивать не получится, но это особо и не требуется на обменниках.
Будет обрывать сразу. Можно сделать два аплоад локейшена типа upload_free, upload_prem с разными лимитами. Скорость аплоада по нормальному ограничивать не получится, но это особо и не требуется на обменниках.
0
alexxz, в связке с Холодковским модулем upload module такого не происходит как я понимаю.
Юзаем эту связку на продакшене — несколько дней полёт нормально :)
А файлы больше 2 гигов через браузер посылать это моветон, десктопный аплоадер с докачкой для таких размеров требо.
Юзаем эту связку на продакшене — несколько дней полёт нормально :)
А файлы больше 2 гигов через браузер посылать это моветон, десктопный аплоадер с докачкой для таких размеров требо.
0
Используем эту штуку вот уже около месяца, полет нормальный. Рекомендации лучших файлообменниководов :)
+1
При аплоаде больших файлов на фронтед (nginx) сервер, файл потом копируется на бэкенд (apache + php) сервера, происходит это по продолжительности дольше чем таймаут nginxa, в итоге получаем ошибку. Как актуально побороть этот недостаток? Решение не искал — лениво подхожу к делу, еще руки не добрались. Заранее спасибо.
0
Sign up to leave a comment.
Nginx UploadProgress Module