Re: Сбор статистики о файле

Igor Sysoev is at rambler-co.ru
Tue Apr 18 10:35:48 MSD 2006


On Tue, 18 Apr 2006, ForJest wrote:

> Единственно что - я не придумал ничего лучше чем вставить регистрацию
> cleanup процедуры в фильтр тела ответа, по флагу. Я не нашёл способа,
> как получить request_t где-нибудь в инциализации или создании conf.
> Может есть лучшее место?
> -------
>     if (!conf->is_finish_inited)
>     {
>          cln = ngx_http_cleanup_add(r, 0);
>          if (cln == NULL) {
>              ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
>              return NGX_ERROR;
>          }
>
>          cln->handler = ngx_http_request_stats_cleanup;
>          cln->data = r;
>          conf->is_finish_inited = 1;
>     }
> ----------

Флаг должен быть не в конфигурации, а в конексте самого запроса.
Использование контекста можно посмотреть, например, в charset, gzip, userid:
     ngx_http_get_module_ctx();
     ngx_http_set_ctx();

> И ещё вопрос - у cleanup процедуры есть какие-либо обязательства? Т.е.
> там нужно вызывать цепочку дальше, или нет? Если нужно, то где взять
> статус завершения, для вызова ngx_http_finalize_request?

Нет, никаких обязательств нет, только return.


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





More information about the nginx-ru mailing list