Доброго времени суток!

Имеется веб-приложение к хранилищу файлов, преимущественно больших, схема: client <--> nginx proxy <--> apache, прокси и бэкенд на разных машинах (nginx/1.6.0, ОС RHEL6.5 x64)

При загрузке большого файла в веб-приложение (10-15Гб), nginx сначала целиком буферизует содержимое http-запроса, лишь затем отдает бэкенду...

на прокси-машине в момент загрузки файла наблюдается большой client_temp, соотвественно на клиенте большая задержка:
#lsof | grep client_temp
nginx 30802 nginx ... 8,1 3654929415 394068 /var/cache/nginx/client_temp/0000000002 (deleted)

Периодически, на больших файлах браузер отдает клиенту 502 Bad Gateway, бэкенд отваливается по таймауту, proxy_buffering off не помогает (по идее и не должен...).

Есть ли возможность отключения полной буферизации проксируемого запроса на прокси-машине? т.е. чтобы nginx буферизовал, например, часть запроса от клиента, затем открывал соединение с бэкендом и неспеша, кусочек за кусочком передавал данные от клиента бэкенду.

    ssl on;
    .....
    large_client_header_buffers 8 256k;
    client_max_body_size 16G;

    location / {
        proxy_pass   http://backend:80/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-for $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header Host $host;
        proxy_connect_timeout 60;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
        proxy_redirect off;
        proxy_buffering off;
        proxy_set_header Connection close;
        proxy_pass_header Content-Type;
        proxy_pass_header Content-Disposition;
        proxy_pass_header Content-Length;
    }

Спасибо!

--
With best regards, Eugene JONIK Peregudov
mailto: [email protected]
_______________________________________________
nginx-ru mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить