ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IE: client timed out (110: Connection timed out) while sending to client



Maxim Dounin пишет:
Hello!

On Sun, Oct 18, 2009 at 02:13:40AM +0300, Станислав wrote:

[...]

  
   в еррор логе выдается такое:

   2009/10/18 03:01:03 [warn] 28243#0: *11692 delaying request, excess:
          0.118, by zone "qraagarphp", client: 94.244.156.213, server:
          xxxxx.xx, request: "GET
          /forum/style.php?sid=ba7bb6c7f099ea2536f223af61b66790&id=1&lang=
          en HTTP/1.1", host: "xxxxx.xx", referrer:
          [2]"http://xxxxx.xx/forum/index.php?"

   2009/10/18 03:01:03 [warn] 28243#0: *11692 an upstream response is
          buffered to a temporary file
          /var/spool/nginx/fastcgi_temp/0000000020 while reading upstream,
          client: 94.244.156.213, server: xxxxx.xx, request: "GET
          /forum/style.php?sid=ba7bb6c7f099ea2536f223af61b66790&id=1&lang=
          en HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:",
          host: "xxxxx.xx", referrer:
          [3]"http://xxxxx.xx/forum/index.php?"

   2009/10/18 03:01:03 [info] 28243#0: *11692 client timed out (110:
          Connection timed out) while sending to client, client:
          94.244.156.213, server: xxxxx.xx, request: "GET
          /forum/style.php?sid=ba7bb6c7f099ea2536f223af61b66790&id=1&lang=
          en HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:",
          host: "xxxxx.xx", referrer:
          [4]"http://xxxxx.xx/forum/index.php?"
    

[...]

  
   Спасти эту ситуацию удалось прибавив nodaley к limit_req
          zone=qraagarphp burst=1

   Но это, мне кажется, не выход, т.к. ддосить будут(

   nginx/0.7.61 + php-fpm
    

В 0.7.61 limit_req с задержкой не работает, если ответ не 
помещается целиком в буфер сокета.  В 0.8.* уже есть фикс:

Changes with nginx 0.8.5:

....

   *) Bugfix: in ngx_http_limit_req_module.

....

Либо использовать limit_req ... nodelay, либо накладывать патч 
руками.

Maxim Dounin


  
Спасибо огромное за ответ=)

Патчик наложить вот этот?
line diff
     1.1 --- a/src/http/modules/ngx_http_limit_req_module.c    Tue Jun 02 00:00:00 2009 +0400
     1.2 +++ b/src/http/modules/ngx_http_limit_req_module.c    Mon Jul 13 00:00:00 2009 +0400
     1.3 @@ -181,7 +181,7 @@
     1.4      }
     1.5  
     1.6      ngx_log_debug3(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
     1.7 -                  "limit_req: %i %ui.%03ui", rc, excess / 1000, excess % 1000);
     1.8 +                   "limit_req: %i %ui.%03ui", rc, excess / 1000, excess % 1000);
     1.9  
    1.10      if (rc == NGX_BUSY) {
    1.11          ngx_shmtx_unlock(&ctx->shpool->mutex);
    1.12 @@ -263,8 +263,23 @@
    1.13  static void
    1.14  ngx_http_limit_req_delay(ngx_http_request_t *r)
    1.15  {
    1.16 +    ngx_event_t  *wev;
    1.17 +
    1.18      ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
    1.19 -                  "limit_req delay");
    1.20 +                   "limit_req delay");
    1.21 +
    1.22 +    wev = r->connection->write;
    1.23 +
    1.24 +    if (!wev->timedout) {
    1.25 +
    1.26 +        if (ngx_handle_write_event(wev, 0) != NGX_OK) {
    1.27 +            ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
    1.28 +        }
    1.29 +
    1.30 +        return;
    1.31 +    }
    1.32 +
    1.33 +    wev->timedout = 0;
    1.34  
    1.35      if (ngx_handle_read_event(r->connection->read, 0) != NGX_OK) {
    1.36          ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);



 




Copyright © Lexa Software, 1996-2009.