ПРОЕКТЫ 


  АРХИВ 


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]

Скорость отдачи файла



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

Возникла проблема. Есть сервер Core 2 Duo, 2GB, 1TB RAID0, Debian.
Установлен nginx 0.6.31, PHP 5.2.6 FastCGI.
Сервер используется для отдачи больших медиафайлов (1,5 - 8 ГБ),
работает по следующей схеме: приходит запрос php скрипту, который в
свою очередь через X-Accel-Redirect отдает файл.

Канал 100Mbit, в среднем число одновременных подключений - 300, канал
забит на 70-90%.

Даже при небольшой нагрузке (меньше чем приведенные средние значения)
файлы в один поток отдаются довольно медленно ~30-50кбайт/сек, если же
качать в 5-8 потоков, то скорость увеличивается в разы.

Что можете посоветовать для решения проблемы с отдачей в один поток?

Читал архив рассылки, но ничего конкретного не нашел.

Конфиг следующий:

user  www;
worker_processes  5;

error_log   /home/nginx-error.log notice;

pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] $request '
                      '"$status" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /home/nginx-access.log  main;

    sendfile        on;

    keepalive_timeout  65;

    include         koi-win;

    gzip  off;

    server {
        listen       80;
        server_name  some.ip;

        location / {
            root   /home/www;
            index  index.php index.html index.htm;
            autoindex  off;
            rewrite "^/([0-9]{10})/([0-9a-f]{32})/([0-9a-z_]+\.[a-z0-9]{3})$" 
/out.php?time=$1&key=$2&get=$3 last;

        location /some_path/ {
           deny    all;
        }

        limit_except GET POST {
             deny   all;
           }

        }

        error_page   400 402 403 404 405 406 407 408 409 410 411 412 413 414 
415 500 502 503 504 505   http://some.addr;

        location ~ \.php$ {
            root           /home/www;
            fastcgi_pass   unix:/var/run/php.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /home/www$fastcgi_script_name;
            fastcgi_param  QUERY_STRING       $query_string;
           fastcgi_param  REMOTE_ADDR        $remote_addr;

           fastcgi_param  REQUEST_METHOD     $request_method;
           fastcgi_param  CONTENT_TYPE       $content_type;
           fastcgi_param  CONTENT_LENGTH     $content_length;

           fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
           fastcgi_param  REQUEST_URI        $request_uri;
           fastcgi_param  DOCUMENT_URI       $document_uri;
           fastcgi_param  DOCUMENT_ROOT      $document_root;
           fastcgi_param  SERVER_PROTOCOL    $server_protocol;

           fastcgi_param  GATEWAY_INTERFACE  CGI;
           fastcgi_param  SERVER_SOFTWARE    nginx;

           fastcgi_param  REMOTE_PORT        $remote_port;
           fastcgi_param  SERVER_ADDR        $server_addr;
           fastcgi_param  SERVER_PORT        $server_port;
           fastcgi_param  SERVER_NAME        $server_name;

           # PHP only, required if PHP was built with 
--enable-force-cgi-redirect
           fastcgi_param  REDIRECT_STATUS    200;

           fastcgi_intercept_errors on;
        }

    }

}



-- 
С уважением,
 Валерий




 




Copyright © Lexa Software, 1996-2009.