Проксирование файлов более 4Гб

Igor Sysoev is at rambler-co.ru
Thu Aug 13 16:41:12 MSD 2009


On Thu, Aug 13, 2009 at 02:32:06PM +0300, Denis Zhdanov wrote:

> Привет всем!
> Имеем nginx 0.7.61 на FreeBSD 6.2, который стоИт фронтендом перед апачем. 
> Помимо динамических страничек на апаче лежат несколько больших файлов, в 
> том числе несколько файлов более 4Гб (переложить файлы на фронтенд 
> затруднительно по ряду причин). Мелкие файлы отдаются нормально, а вот с 
> большими проблемы - при выключенной буферизации закачка сначала 
> останавливается, а потом обрывается по таймауту через некотрое количество 
> мегабайт. При этом в access.log - обычный файл с кодом возврата 200 -
> 192.168.7.6 - - [13/Aug/2009:13:43:37 +0300] "GET 
> /files/47ccdaf4dd87/dvd.iso HTTP/1.1" 200 178847744 "-" "Opera/9.64 
> (Windows NT 5.1; U; ru) Presto/2.1.1"
> (сам dvd.iso при этом размером 4356636672 байт )
> а в error.log - ничего.
> При включенной буферизации работает нормально, но так как клиентов много и 
> они медленные, то /var/spool/nginx/proxy_temp растет катастрофически 
> быстро и за пару часов на /var кончается место. Буферами пробовал играться 
> - не помогает.
> Проксирую так - 
> 
>         location ~* 
> \.cgi$|^/cgi-bin|^/check|^/download|^/index|^/files|^/beta {
>             auth_basic  off;
>             proxy_buffering off;
>             proxy_pass  http://192.168.201.7:8000;
>             proxy_set_header  Host  $host;
>             proxy_set_header  X-Real-IP  $remote_addr;
>             proxy_set_header  X-Forwarded-For  $remote_addr;
>         }
> 
> Пока поставил костыль в виде rewrite этих больших файлов непосредственно 
> на апач на 8000 порт - но это некрасиво и не секурно.
> Помогите плиз.

Правильно ли я понимаю, что вариант с
proxy_buffering  off;
не работает ? А какие настройки таймаутов ?

Попробуйте
proxy_buffering           on;  # default
proxy_max_temp_file_size  0;


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list