Отловить момент, когда закачка завершена

AleXXX V. NovikoFF alexxx at alexxx.ru
Thu Feb 9 21:04:07 MSK 2006


> On Thu, 9 Feb 2006, AleXXX V. NovikoFF wrote:
> 
> >> Когда файл отдается целиком, post_action действительно вызывается, а
> >> когда вот такое:
> >>
> >> 2006/02/09 08:21:30 [info] 2679#0: *2430 client timed out (110: Connection timed out) while sending response to client, client: 21
> >> 2.220.204.71, server: mults.spb.ru, URL: "/mults/gribnoy_dozhdik.avi",
> >> host:,0 "mults.spb.ru", referrer: http://mults.spb.ru/mults/"
> >>
> >> то до post_action дело не доходит, а надо бы... :(
> >>
> >
> > Может попробовать вынести обработку post_action в функцию ngx_http_close_request?
> 
> Нет, post_action нужно вызывать в ngx_http_finalize_request().

Там есть такие моменты, когда в ngx_http_finalize_request() мы никогда
не попадем, среди них как раз connection timeout :( я заметил как
минимум в 2 местах (искать по словам "client timed out")

> Для оборванных ответов вызов post_action можно поставить сюда:
> 
>      if (rc == NGX_ERROR || r->connection->error) {
>          ngx_http_close_request(r, 0);
>          return;
>      }

испробовано, ноль реакции,
пробовал также в ngx_http_writer() но в итоге тоже, реакции нет...

> 
> Но нужно смотреть, возможно, при обработка проксированных и fastcgi
> запросов будет не полной из-за r->connection->error.

у меня в общем-то этот post_action в выдаче статики участвует

> 
> 
> Игорь Сысоев
> http://sysoev.ru

-- 
AleXXX V. NovikoFF <alexxx at alexxx.ru>






More information about the nginx-ru mailing list