http://www.sibsoft.net/xupload.html в помощь
10 ноября 2009 г. 0:35 пользователь wasiliy <nginx-forum@nginx.us> написал:
> есть конфиг nginx:
> worker_processes 5;
> worker_rlimit_nofile 65535;
>
> events {
> use epoll;
> worker_connections 10240;
> }
>
> http {
> include mime.types;
> default_type application/octet-stream;
> charset UTF-8;
>
> access_log off;
> sendfile on;
> server_names_hash_bucket_size 64;
> tcp_nopush on;
> tcp_nodelay on;
> keepalive_timeout 15;
>
> gzip on;
> gzip_min_length 1024;
> gzip_buffers 12 32k;
> gzip_types application/xml text/css application/x-javascript;
>
> client_header_buffer_size 4k;
> large_client_header_buffers 4 4k;
> output_buffers 4 32k;
>
> ..... (описание виртуальных серверов) ....
>
> location / {
> fastcgi_pass localhost:8867;
> fastcgi_index index.html;
> include fastcgi_params;
> keepalive_timeout 0;
> }
>
>
> + есть стандартная форма аплоада файлов:
>
>
>
>
>
> При отправке запроса - обработчиком выступает perl скрипт с FCGI + FCGI::ProcManager
>
> Файлы через форму отправляются громадные (2-3 Гб, например).
> Перл скрипт читает из STDIN до CONTENT_LENGTH
>
>
> Проблемы собственно две:
> 1. Когда файл большой - аплоадинг просто прекращается через определенное время (примерно 20-30 секунд после старта) - как этого избежать?
> 2. Когда файл маленький (успевает закачаться за этот период) - все равно сначала nginx полностью получает его, а только после этого передает fastcgi скрипту. Надо, чтобы скрипт получал контент по мере отправки его клиентом (для реализации прогрессбара). Как это можно реализовать?
>
> Заранее благодарен за ответы.
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,21634,21634#msg-21634
>
>
>