upload + fastcgi = cache?

wasiliy nginx-forum at nginx.us
Tue Nov 10 00:35:21 MSK 2009


есть конфиг 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






More information about the nginx-ru mailing list