проблема с limit_req - client timed out
Maxim Dounin
mdounin at mdounin.ru
Mon Mar 30 15:03:52 MSD 2009
Hello!
On Mon, Mar 30, 2009 at 01:46:39PM +0400, Phil Kulin wrote:
> 30 марта 2009 г. 13:37 пользователь Maxim Dounin <mdounin at mdounin.ru> написал:
>
> >> Не помогло. Стоит nginx из fbsd портов 0.7.42. Запросы проксируются.
> > Ты уверен что патч наложился и не перезатёрся очередным make
> > extract'ом? И работает бинарник с патчем?
>
> Да, перепроверил. Патч клал уже после make patch и зашёл поглядел.
> Да, работает тот самый - посмотрел на дату бинарника.
Надо бы ещё убедиться что новый бинарник действительно запущен, а
не просто на диске лежит. Но проще приложить новый патч и сделать
debug log.
> Смотри, образно - первый раз словил 503 и ты перестаёшь быть белым человеком.
> Тебе всё сразу срубает. Такое впечатление, что он там что-то куда-то
> какие-то лимиты шмякает и потом просто не выходит из них. Могу собрать
> с дебагом, ошибка чётко повторяется. Могу руками попробовать 0.7.45.
> Просто не прямо сейчас наверное. Надо?
>
> Причём, проверял - "белый экран" только у "виновника", до первой 503
> у остальных всё тип-топ.
Т.е. проблема только у тех, кто уже получил 503? Это что-то
новое. Патч исправляет проблему, которая у всех кого задерживали,
если ответ не влезает в tcp-буфера системы. Вне зависимости от
предыдущих/последующих 503.
Сделай пожалуйста debug log с прилагающимся патчем (то же, +
однозначная различимость с коробочной версией). Версию менять не
обязательно.
Maxim Dounin
>
> >> Очень характерный лог:
> >> 2009/03/30 10:43:19 [warn] 10021#0: *33551 delaying request, excess:
> >> 8.420, by zone "cookie", client: 94.25.155.4, server: umi-cms.ru,
> >> request: "GET / HTTP/1.1
> >> ", host: "www.umi-cms.ru"
> >> 2009/03/30 10:43:20 [error] 10021#0: *33555 limiting requests, excess:
> >> 10.230 by zone "cookie", client: 94.25.155.4, server: umi-cms.ru,
> >> request: "GET / HTTP/1
> >> .1", host: "www.umi-cms.ru"
> >> 2009/03/30 10:43:35 [info] 10021#0: *33551 client timed out (60:
> >> Operation timed out) while sending to client, client: 94.25.155.4,
> >> server: umi-cms.ru, request
> >> : "GET / HTTP/1.1", upstream: "http://127.0.0.1:80/", host: "www.umi-cms.ru"
> >>
> >> Я со своей стороны вижу белый экран.
> >> Если пожать F5 - вылезает 503, потом опять белый экран.
> >> Ни о каких 60-ти секундах вроде речь не идёт? Такое впечатление, что
> >> просто выбранный элемент limit_req_zone перестаёт проксироваться.
> >>
> >> --
> >> Non nobis Domine non nobis sed Nomini Tuo da gloriam
> >> Phil Kulin
> >
> >
>
>
>
> --
> Non nobis Domine non nobis sed Nomini Tuo da gloriam
> Phil Kulin
-------------- next part --------------
diff --git a/src/http/modules/ngx_http_limit_req_module.c b/src/http/modules/ngx_http_limit_req_module.c
--- a/src/http/modules/ngx_http_limit_req_module.c
+++ b/src/http/modules/ngx_http_limit_req_module.c
@@ -260,7 +260,9 @@ static void
ngx_http_limit_req_delay(ngx_http_request_t *r)
{
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
- "limit_req delay");
+ "limit_req delay patched");
+
+ r->connection->write->timedout = 0;
if (ngx_handle_read_event(r->connection->read, 0) != NGX_OK) {
ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
More information about the nginx-ru
mailing list