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

Михаил Монашёв postmaster at softsearch.ru
Mon Feb 23 20:04:01 MSK 2009


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

Странно, что она улучшилась. Я не заметил по конфигу, что всё проксируется к
апачам. Мой совет относился к случаю, когда nginx сам раздаёт файлы с
диска, а не проксирует запросы к апачу.

Прочтите вот это http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#root
и это http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#location
и разберитесь как работает вот это конфиг
http://sysoev.ru/nginx/docs/example.html  хотя бы в общих чертах. Ваша
цель  настроить nginx так, что бы файлы отдавались с диска nginx-ом, а
странички,  которые  генерятся  скриптами  проксировались к апачу. Как
напишите  такой  конфиг,  заработает  worker_processes  10;          .
worker_connections  дефолтный  скорее  всего  Вам  подойдёт  и  его не
придётся задавать.

L> Поставил worker_processes 10; возможно, ситуация немного
L> улучшилась, но задержки все равно есть.
L> Если можно, объясните принцип, по которому нужно подбирать
L> worker_processes и worker_connections.

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

>> worker_processes 1; - маловато. В зависимости от нагрузки увеличивать,
>> если все воркеры на диске начинают лочиться. Это скорее всего решит
>> Вашу первую проблему.
>> 
>> L> Здравствуйте.
>> L> Система FreeBSD 7, 4 Гб RAM.
>> L> nginx нужно использовать для отправки файлов самого разного размера: от 2-3 кб до 2-3 гб.
>> L> Пытался подобрать оптимальный конфиг, но не очень получается.
>> L> Вот, что у меня на данный момент:
>> 
>> 
>> L> user www www;
>> L> worker_processes 1;
>> 
>> L> worker_rlimit_nofile 10240;
>> L> worker_rlimit_sigpending 32768;
>> L> worker_priority 5;
>> 
>> L> error_log /.../nginx_error_log info;
>> 
>> L> events {
>> L>     worker_connections  20480;
>> L>     use kqueue;
>> L> }
>> 
>> L> http {
>> L>     default_type    application/octet-stream;
>> 
>> L>     log_format main
>> L>         '$remote_addr - $remote_user [$time_local] '
>> L>             '"$request" $status $bytes_sent '
>> L>         '"$http_referer" "$http_user_agent" '
>> L>         '"$gzip_ratio"';
>> 
>> 
>> 
>> L> access_log /.../nginx_access_log main;
>> 
>> 
>> 
>> 
>> L>     client_header_timeout  60;
>> L>     client_body_timeout    60;
>> L>     send_timeout           120;
>> L>     proxy_read_timeout     180;
>> L>     proxy_connect_timeout  60;
>> L>     proxy_send_timeout     180;
>> 
>> 
>> L>     msie_padding on;
>> 
>> L>     proxy_buffer_size          32k;
>> 
>> L>     proxy_buffers              64 512k;
>> L>     proxy_busy_buffers_size    1024k;
>> L>     proxy_temp_file_write_size 1024k;
>> 
>> L>     gzip on;
>> L>     gzip_min_length  10240;
>> L>     gzip_buffers     32 64k;
>> L>     gzip_types       text/html application/x-javascript text/css text/xml
>> L> text/plain;
>> 
>> L>     client_header_buffer_size    4k;
>> L>     client_max_body_size 120000000;
>> L>     large_client_header_buffers  16 8k;
>> 
>> L>     sendfile       on;
>> L>     tcp_nopush     on;
>> L>     tcp_nodelay    on;
>> 
>> L>     output_buffers   32 256k;
>> L>     postpone_output  1460;
>> 
>> L>     lingering_time     30;
>> L>     lingering_timeout  6;
>> L>     reset_timedout_connection  on;
>> 
>> L>     keepalive_timeout  20;
>> L>     optimize_server_names on;
>> 
>> L>     index index.html;
>> 
>> L>     server {
>> L>         listen       ххх.ххх.ххх.ххх:80;
>> L>         server_name  ххх;
>> L>         location / {
>> 
>> L>             proxy_pass         http://127.0.0.1:81/;
>> L>             proxy_redirect     off;
>> L>             proxy_set_header   Host             $host;
>> L>             proxy_set_header   X-Real-IP        $remote_addr;
>> L>         }
>> L>     }
>> L> }
>> 
>> 
>> L> Но проблемы следующие:
>> L> - большие паузы перед отдачей файла (сразу после старта сервера
>> L> отдает сразу же, через некоторое время начинаются приличные паузы).
>> L> - непонятная скорость отдачи файлов. файлы отдаются рывками,
>> L> скорость иногда запредельно низкая (10-15 Кб/с, когда нормальная
>> L> 300-500 Кб/с).
>> 
>> L> Какие настройки нужно менять и где крутить?
>> L> Спасибо!




  

--

С уважением,
Михаил Монашёв, SoftSearch.ru
mailto:postmaster at softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.






More information about the nginx-ru mailing list