<br><br><div><span class="gmail_quote">On 8/23/06, <b class="gmail_sendername">Igor Sysoev</b> &lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt; wrote:</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Возможно, дело в том, что Апач выдаёт не просто<br>Keep-alive: timeout=15, max=5<br>Keep-alive: timeout=15, max=5<br>Keep-alive: timeout=15, max=5<br>Keep-alive: timeout=15, max=5<br><br>а<br><br>Keep-alive: timeout=15, max=5
<br>Keep-alive: timeout=15, max=4<br>Keep-alive: timeout=15, max=3<br>Keep-alive: timeout=15, max=2<br>Connection: close<br><br>и закрывает соединение после пятого запроса, поэтому бразуер открывает новое.<br>nginx же не ограничивает число запросов по keep-alive соединению, поэтому
<br>всё идёт через изначальные три.<br><br></blockquote></div><br><br>данное утверждение верно. именно так и ведет себя апач.<br><br>утверждение про&nbsp; nodelay так-же верно.<br><br><br>apache/srclib/apr/network_io/unix/sockopt.c 
<br>------------------------------------------------------------------<br>static apr_status_t sononblock(int sd)<br>{<br>#ifndef BEOS<br>&nbsp;&nbsp;&nbsp; int fd_flags;<br><br>&nbsp;&nbsp;&nbsp; fd_flags = fcntl(sd, F_GETFL, 0);<br>#if defined(O_NONBLOCK)
<br>&nbsp;&nbsp;&nbsp; fd_flags |= O_NONBLOCK;<br>#elif defined(O_NDELAY)<br>&nbsp;&nbsp;&nbsp; fd_flags |= O_NDELAY;<br>#elif defined(FNDELAY)<br>&nbsp;&nbsp;&nbsp; fd_flags |= FNDELAY;<br>#else<br>#error Please teach APR how to make sockets non-blocking on your platform.
<br>#endif<br>&nbsp;&nbsp;&nbsp; if (fcntl(sd, F_SETFL, fd_flags) == -1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return errno;<br>&nbsp;&nbsp;&nbsp; }<br>#else<br>&nbsp;&nbsp;&nbsp; int on = 1;<br>&nbsp;&nbsp;&nbsp; if (setsockopt(sd, SOL_SOCKET, SO_NONBLOCK, &amp;on, sizeof(int)) &lt; 0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return errno;
<br>#endif /* BEOS */<br>&nbsp;&nbsp;&nbsp; return APR_SUCCESS;<br>}<br>----------------------------------------------------<br><br><br>Итого:&nbsp; есть вполне хорошее и логичное обьяснение сложившейся ситуации.<br>По тестам, время на открытие все той-же странички получается ~0.59s, что
<br clear="all">как минимум не хуже чем у апача, при гораздо более приятной масштабируемости.<br><br><br>Игорь, а может быть имеет смысл по умолчанию &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tcp_nodelay&nbsp; on&nbsp;&nbsp; ?<br><br>-- <br>liberation loophole will make it clear