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

Igor Sysoev is at rambler-co.ru
Fri Apr 21 13:07:58 MSD 2006


On Fri, 21 Apr 2006, ForJest wrote:

> Игорь, а где исправить, чтобы начало работать и post_action и cleanup
> процедура? Я могу сделать workaround в этом самом post_action, но хочу
> сделать по уму.

cleanup и post_action не связаны. cleanup вызывается только для основного
запроса.

> On 4/21/06, Igor Sysoev <is at rambler-co.ru> wrote:
>> On Fri, 21 Apr 2006, ForJest wrote:
>>
>>> Игорь, а при наличии post_action данная конструкция и не должна
>>> срабатывать? Как можно сделать чтобы cleanup-процедура работала и с
>>> post_action?
>>> Я точно не проверял, но вот на develop nginx'е 0.3.37 cleanup
>>> процедура отрабатывает. А на тестовом, у которого есть post_action
>>> (0.3.40) - нет.
>>
>> cleanup на данный момент не отрабатывает на keep-alive соединениях.
>> В 0.3.41 это будет исправлено.
>>
>>> On 4/18/06, Igor Sysoev <is at rambler-co.ru> wrote:
>>>> 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
>>
>>
>
>
>

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





More information about the nginx-ru mailing list