Re: Для HTTP/2 nginx не присылает UPDATE WINDOW
Валентин Бартенев
vbart на nginx.com
Ср Май 11 14:12:06 UTC 2016
On Wednesday 11 May 2016 10:06:58 AterCattus wrote:
> Валентин Бартенев Wrote:
> -------------------------------------------------------
> > On Wednesday 11 May 2016 09:55:40 AterCattus wrote:
> > > Да, конечно. За эти 2ГБ полезной нагрузки успевает выполнится пачка
> > > последовательных запросов (т.е. nginx присылает все соответствующие
> > HEADERS
> > > и DATA фреймы). Не говоря уже про обмен SETTINGS.
> > >
> > [..]
> >
> > Так пришлось сделать из-за славного браузера Chrome, подробности:
> > http://hg.nginx.org/nginx/rev/8df664ebe037
> >
> > На самом деле не только Chrome этим грешит, но и MS IE/Edge, Safari.
> >
> > У вас какой-то свой клиент?
> >
> > --
> > Валентин Бартенев
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru на nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> Да, я видел фикс для (RST_STREAM, NO_ERROR). Надеялся, что хоть по
> превышению 2Г nginx отдаст еще 2Г в window_update, но нет.
> Выходит, единственное решение - это по истечению окна переподключаться?
>
> Клиент свой самописный, да.
>
Уточню, речь идет ведь об окне на stream? Или на соединение?
Окно на соединение сейчас всегда поддерживается максимальным
и window_update на него должны ходить по условию:
if (h2c->recv_window < NGX_HTTP_V2_MAX_WINDOW / 4) {
if (ngx_http_v2_send_window_update(h2c, 0, NGX_HTTP_V2_MAX_WINDOW
- h2c->recv_window)
== NGX_ERROR)
{
return ngx_http_v2_connection_error(h2c,
NGX_HTTP_V2_INTERNAL_ERROR);
}
h2c->recv_window = NGX_HTTP_V2_MAX_WINDOW;
}
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru