инициализация фильтр модуля

Maxim Dounin mdounin at mdounin.ru
Wed Nov 7 00:25:31 MSK 2007


Hello!

On Tue, 6 Nov 2007, linux-kernel wrote:

> Здравствуйте, nginx-ru.
> Писал я модуль к нгинксу 0 6 16 и сталкнулся с проблемой.
>
> Взял в качестве образца ngx_http_chunked_filter_module.c и обнаружил
> что в инит функции модуля, те в ngx_http_chunked_filter_init
>
> ngx_http_next_header_filter = ngx_http_top_header_filter;
> ngx_http_top_header_filter = ngx_http_chunked_header_filter;
>
> ngx_http_next_body_filter = ngx_http_top_body_filter;
> ngx_http_top_body_filter = ngx_http_chunked_body_filter;
> не имею смысла тк,  модули
> ngx_http_headers_filter_module.c и ngx_http_write_filter_module.c не
> были инициализированы и соответствующий
> ngx_http_top_header_filter и ngx_http_top_body_filter равны NULL, те в
> свой фильтр модуль я получаю gx_http_next_header_filter = NULL, а
> когда ngx_http_headers_filter_module.c и
> ngx_http_write_filter_module.c проинициализируются, они спокойно
> затирают указатель на мой фильтр, те мои функции фильтры вообще не
> вызываются.
>
> Собственно вопрос: так должно быть или я не правильно понял идеалогию
> нгинх-а(я его только 5 день в глаза вижу)???

Видимо, вы встроились в неправильное место цепочки фильтров при 
конфигурировании. В файле config надо написать примерно следующее:

ngx_addon_name="ngx_http_my_filter_module"
HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES ngx_http_my_filter_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_my_filter_module.c"

Тогда фильтр встроется в осмысленное место.

Maxim Dounin





More information about the nginx-ru mailing list