Проблема с limit_conn

Alexey Kaminsky alexeykaminsky на gmail.com
Ср Фев 10 22:39:25 MSK 2010


Здравствуйте.
Возник вопрос по поводу работы директивы limit_conn, а именно: "Почему nginx
считает коннект открытым, если файл уже давно скачался".
Обьясню на примере - пользователь скачивает N файлов с сервера в N потоков
(на каждый файл по 1). В конфиге стоит ограничение в N подключений,
соответственно он не может качать больше - всё ок. Но, почему-то иногда(!)
по завершению скачки файла пользователь всё равно не может получить доступ к
файлам и видит 503 ошибку.

netstat -na | grep server_ip на клиентской машине (проверял на своей - у
меня тоже такое возникло) показывает, что активных коннектов нету (закрывал
браузер). Если то же самое посмотреть на сервере, то почему-то показывает,
что соединение активно. Пробовал перезагружать клиентский (свой) комп -
безрезультатно - всё равно netstat показывает активное соединение. Не
подскажете, где зарыта собака?) Гуглил. Гугл рассказал о старинном письме из
этой же рассылки, датированным вроде 2006 годом, но описанное там не
помогло. Заранее спасибо)

Фрагмент конфига -

   limit_zone   iplimit  $binary_remote_addr  10m;

    server {
        listen       80;
        server_name  ***;
        charset utf8;
        access_log  logs/***.access.log;
        error_log  logs/***.error.log;


    location / {
            root           /mnt/sdb1/ftp;
            autoindex  on;
            aio             on;
            directio        4192;
            allow 10.10.0.0/16;
            deny all;
     }
        limit_conn   iplimit  4;
    }

PS. 10.10.0.0/16 - VPN сеть на OpenVPN.
Сервер - Debian 5,  2.6.26-2-amd64, nginx/0.8.32


-- 
Best Regards
-------------------------
Alexey Kaminsky
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100210/23dbc1f1/attachment-0001.html>


Подробная информация о списке рассылки nginx-ru