nginx + default {deferred|bind} = корки

Alex Vorona voron at amhost.net
Wed May 30 09:42:19 MSD 2007


Igor Sysoev пишет:
>> man 7 socket в Linux
>> SO_REUSEADDR
>> Indicates that the rules used in validating addresses supplied in a bind(2) 
>> call should allow reuse of  local addresses. For PF_INET sockets this means 
>> that a socket may bind, except when there is an active listening socket 
>> bound to the address.  When the listening socket  is  bound  to  INADDR_ANY 
>> with a specific port then it is not possible to bind to this port for any 
>> local address.
>>
>> Вот как раз и имеем ту ситуацию, с которой начался тред.
> 
> Проблема в том, что bind() вопреки этому man'у как раз проходит без ошибок,
> а ошибка выплывает только на этапе listen(). И непонятно, почему в этом
> случае listening сокет постоянно сообщает о готовых соединениях, а
> accept() постоянно вылетает с ошибкой.
> 
Почему вопреки? nginx сначала делает все bind()'ы, а потом только listen()'ы
По ману - bind() не пройдёт, когда на этом порту уже есть listen()-сокет. Другой 
вопрос в нелогичности давать делать такие bind()'ы, если всё равно нельзя 
сделать потом listen() всем





More information about the nginx-ru mailing list