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
|