ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: nginx для отдачи больших файлов



Здравствуйте.

Файл отдается так: сначала идет обращение к скрипту, который делает
все необходимые проверки и потом выдает такое:

    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.$filename . '";');
    header("X-Accel-Redirect: /files/" . $filename);

Т.е. выполняется редирект на nginx, который и отдает файл. Я, надеюсь,
правильно делаю? :)

> Судя по конфигурационному файлу, вы все запросы прокачиваете через апач? А 
> напрямую отдавать
> самим        nginx`ом       эти       самый       файлы       например
> http://blog.kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/ ?

>> Система FreeBSD 7, 4 Гб RAM.
>> nginx нужно использовать для отправки файлов самого разного размера: от 2-3 
>> кб до 2-3 гб.
>> Пытался подобрать оптимальный конфиг, но не очень получается.
>> Вот, что у меня на данный момент:


>> user www www;
>> worker_processes 1;

>> worker_rlimit_nofile 10240;
>> worker_rlimit_sigpending 32768;
>> worker_priority 5;

>> error_log /.../nginx_error_log info;

>> events {
>>     worker_connections  20480;
>>     use kqueue;
>> }

>> http {
>>     default_type    application/octet-stream;

>>     log_format main
>>         '$remote_addr - $remote_user [$time_local] '
>>             '"$request" $status $bytes_sent '
>>         '"$http_referer" "$http_user_agent" '
>>         '"$gzip_ratio"';



>> access_log /.../nginx_access_log main;




>>     client_header_timeout  60;
>>     client_body_timeout    60;
>>     send_timeout           120;
>>     proxy_read_timeout     180;
>>     proxy_connect_timeout  60;
>>     proxy_send_timeout     180;


>>     msie_padding on;

>>     proxy_buffer_size          32k;

>>     proxy_buffers              64 512k;
>>     proxy_busy_buffers_size    1024k;
>>     proxy_temp_file_write_size 1024k;

>>     gzip on;
>>     gzip_min_length  10240;
>>     gzip_buffers     32 64k;
>>     gzip_types       text/html application/x-javascript text/css text/xml
>> text/plain;

>>     client_header_buffer_size    4k;
>>     client_max_body_size 120000000;
>>     large_client_header_buffers  16 8k;

>>     sendfile       on;
>>     tcp_nopush     on;
>>     tcp_nodelay    on;

>>     output_buffers   32 256k;
>>     postpone_output  1460;

>>     lingering_time     30;
>>     lingering_timeout  6;
>>     reset_timedout_connection  on;

>>     keepalive_timeout  20;
>>     optimize_server_names on;

>>     index index.html;

>>     server {
>>         listen       ххх.ххх.ххх.ххх:80;
>>         server_name  ххх;
>>         location / {

>>             proxy_pass         http://127.0.0.1:81/;
>>             proxy_redirect     off;
>>             proxy_set_header   Host             $host;
>>             proxy_set_header   X-Real-IP        $remote_addr;
>>         }
>>     }
>> }


>> Но проблемы следующие:
>> - большие паузы перед отдачей файла (сразу после старта сервера
>> отдает сразу же, через некоторое время начинаются приличные паузы).
>> - непонятная скорость отдачи файлов. файлы отдаются рывками,
>> скорость иногда запредельно низкая (10-15 Кб/с, когда нормальная 300-500 
>> Кб/с).

>> Какие настройки нужно менять и где крутить?
>> Спасибо!











-- 
С уважением,
 shaman                          mailto:shaman712@xxxxxxxx




 




Copyright © Lexa Software, 1996-2009.