nginx filters programming

Igor Sysoev is at rambler-co.ru
Fri Dec 23 13:22:47 MSK 2005


On Fri, 23 Dec 2005, Alexey N. Kovyrin wrote:

> Сел писать модуль для nginx и решил начать с того, что казалось попроще :-) В 
> итоге, изрядно помучавшись, написал фильтр для добавления баннерного кода в 
> начало и в конец страницы... Но не уверен, что правильно понимаю 
> технологию.... Потому пара вопросов к тем, кто разбирается во внутренностях 
> nginx:
>
> 1) Можно ли, чтобы в буфере, созданный через ngx_calloc_buf(r->pool), b->pos 
> указывал на мой статический буффер? Я так понял, что b->memory = 1 для этого 
> и придумано...

Да.

> 2) Какие подводные камни могут быть при простом добавлении контента вот в 
> таком виде (да и вообще, правилен ли подход)? :
>
> ngx_chain_t head, tail, *cur;
> ...
> head.next = in;
> ...
> cur = in;
> while (cur->next) cur = cur->next;
> cur->next = &tail;
> cur->buf->last_buf = 0;
> tail->buf->last_buf = 1;
>
> return ngx_http_next_body_filter(r, &head);

Подход правильный. А ничего, что код будет добавляться после </html> ?


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





More information about the nginx-ru mailing list