nginx тормозит выдачу контента. помогите выпрямить мне руки.

vvs at onecd.ru vvs at onecd.ru
Wed Dec 5 01:15:06 MSK 2007


Приветствую.

Был Apache - контент отдавался со скоростью более 300Мбит.
Перешел на nginx+Apache. Скорость доходит до 120 МБит и после этого
падает до 99. На этой скорости и работает... Бэкенд не тормозит.
Ограничения на скачивания по кол-ву запросов с одного IP
были такими же - не более 3 одновременных (отключал - не влияет).
Сервер выдает файлы от 500Кб до 150Мб. Упора в дисковую
нет. Память и CPU не загружены. Пиковая нагрузка ~ 1500 соединений.
nginx принимает запросы, отправляет на бэкенд (Apache) получает
X-Accel-Redirect на /internal/.
Проблема, скорее всего, в моих кривых руках...

Конфиг:
user  www www;
worker_processes  4;
events {
        worker_connections  5000;
        use kqueue;
}
http {
    include           mime.types;
    default_type      application/octet-stream;
    limit_zone        server_ip_limit $binary_remote_addr  10m;

    client_header_timeout  30s;
    client_body_timeout    30s;
    send_timeout           1m;

    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;

    sendfile         on;
    tcp_nopush       on;
    tcp_nodelay      on;
    send_lowat       12000;

    output_buffers   4 64k;
    postpone_output  1460;

    keepalive_timeout 0;

    server {
        listen       87.ххх:80;
        server_name  ххх;
        limit_conn   server_ip_limit  3;

        location / {
            proxy_pass         http://127.0.0.1:8080/;
            proxy_redirect     off;
            proxy_buffering    off;
            proxy_max_temp_file_size  0;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       200m;
            client_body_buffer_size    128k;
            proxy_connect_timeout      30;
            proxy_send_timeout         30;
            #proxy_buffer_size          4k;
            #proxy_buffers              4 32k;
            #proxy_busy_buffers_size    64k;
            #proxy_temp_file_write_size 64k;
        }
        location ~ /internal/ {
                rewrite ^/internal/(.*)$ /$1 break;
                root /home/www;
                internal;
        }
    }
}
Может что-то лишнее и/или чего-то не хватает?...

В логе вижу следующее:
2007/12/05 00:00:54 [error] 4604#0: accept() failed (53: Software caused connection abort) while accepting new connection on 87.ххх
2007/12/05 00:02:13 [error] 4601#0: accept() failed (53: Software caused connection abort) while accepting new connection on 87.ххх

С уважением,
Синицын Александр.



More information about the nginx-ru mailing list