Долгий редирект при включенном keep-alive

Administrator server at edinorog.ru
Sun Feb 18 15:50:05 MSK 2007


Добрый день.

Настроен nginx-0.5.12+apache FreeBSD 4.11.
При запросе несуществующего адреса, например, без www происходит редирект апачем помощью php.

header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.test.com/');
exit();

Так вот, что IE, что FireFox честно висят при таком редиректе и ждут окончания keepalive. Сейчас стоит 7 секунд. Поставишь его в 60 секунд, то 60 и будут ждать, а потом пойдут по новой ссылке. Опера в отличие от этих двух друзей 
редиректиться сразу.

Если поставить keepalive_timeout в 0, то редирект срабатывает мгновенно.

Где ошибка и как вылечить?

В настройках nginx стоит
user web web;
worker_processes 4;
events {
    worker_connections  2048;
    use kqueue;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    keepalive_timeout 7 5;

    client_header_timeout 60;
    client_body_timeout 60;

    send_timeout 60;

    client_header_buffer_size 1k;
    large_client_header_buffers 8 4k;

    server {
        listen ...
        server_name ...

        proxy_redirect off;
        port_in_redirect off;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_connect_timeout 90;
        proxy_send_timeout 90;
        proxy_read_timeout 90;
        proxy_send_lowat 12000;

        proxy_buffering on;
        proxy_buffer_size 16k;
        proxy_buffers 54 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;

        location / {
            client_max_body_size 10m;
            client_body_buffer_size 128k;

            proxy_pass http://127.0.0.1:8000;
        }
    }
}

-- 
С уважением,
 
Системный администратор
Дизайн-студия "Единорог"
Тел: (495) 225-44-57
E-mail: server at edinorog.ru






More information about the nginx-ru mailing list