11 февраля 2010 г. 12:15 пользователь Maxim Dounin
Hello!
On Wed, Feb 10, 2010 at 09:39:25PM +0200, Alexey Kaminsky wrote:
> Здравствуйте.
> Возник вопрос по поводу работы директивы limit_conn, а именно: "Почему nginx
> считает коннект открытым, если файл уже давно скачался".
> Обьясню на примере - пользователь скачивает N файлов с сервера в N потоков
> (на каждый файл по 1). В конфиге стоит ограничение в N подключений,
> соответственно он не может качать больше - всё ок. Но, почему-то иногда(!)
> по завершению скачки файла пользователь всё равно не может получить доступ к
> файлам и видит 503 ошибку.
>
> netstat -na | grep server_ip на клиентской машине (проверял на своей - у
> меня тоже такое возникло) показывает, что активных коннектов нету (закрывал
> браузер). Если то же самое посмотреть на сервере, то почему-то показывает,
> что соединение активно. Пробовал перезагружать клиентский (свой) комп -
> безрезультатно - всё равно netstat показывает активное соединение. Не
> подскажете, где зарыта собака?) Гуглил. Гугл рассказал о старинном письме из
> этой же рассылки, датированным вроде 2006 годом, но описанное там не
> помогло. Заранее спасибо)
[...]
> aio on;
Были сигналы, что в aio есть ошибки и существует утечка сокетов.
Отключение aio должно помочь.