Re[2]: limit_rate странно себя ведёт.

Igor Sysoev is at rambler-co.ru
Sat Jan 20 20:18:40 MSK 2007


On Sat, 20 Jan 2007, Igor Sysoev wrote:

> On Sat, 20 Jan 2007, Михаил Монашёв wrote:
>
>>>> При  имитации  одного  из  выше описанных ботов контент как-то странно
>>>> отдаётся:  сначала  каждую  секунду  приходит 100 байт, потом пауза на
>>>> секунду-две,  потом  ещё  несколько  пачек  по  100 байт и потом всё -
>>>> ничего не отдаётся, или же наступает огромная пауза и потом опять пару
>>>> пачек приходит. Т.е. происходят какие-то непонятные огромные таймауты.

>> Соединение провисело и минут через 5-10 выдало
>> Connection closed by foreign host.
>> на середине странички.
>> 
>>>> Так и должно быть?
>> 
>> IS> Нет, если ответ от бэкенда поступает равномерно или отдаётся статика, 
>> то
>> IS> должно уходить пакетами по 100 байт раз в секунду.
>> 
>> Отдаётся динамика. Ответ от бэкенда поступает быстро. Для сравнения
>> сделай тот же запрос, но без "User-Agent: Jakarta".
>
> Есть предположение, что виноват "tcp_nopush  on". Можно его выключить,
> на 6-ке он уже не так нужен.

Скорее всего, дело не столько в tcp_nopush, сколько в sendfile.
Можно попробовать прилагаемый патч и такую конфигурацию:

    if (...) {
        limit_rate  100;
        sendfile    off;
    }


Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/http/ngx_http_core_module.c
===================================================================
--- src/http/ngx_http_core_module.c	(revision 387)
+++ src/http/ngx_http_core_module.c	(working copy)
@@ -275,7 +275,8 @@
       NULL },
 
     { ngx_string("sendfile"),
-      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
+                        |NGX_CONF_TAKE1,
       ngx_conf_set_flag_slot,
       NGX_HTTP_LOC_CONF_OFFSET,
       offsetof(ngx_http_core_loc_conf_t, sendfile),


More information about the nginx-ru mailing list