Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ngx_http_layouts_filter_module
Решил попробовать сделать модуль а-ля mod_layout собственноручно,
в помощь таким же страждущим. Всвязи с этим необходима консультативная
помощь тех, кто более-менее знает внутреннее устройство nginx (если
такие есть кроме Игоря).
Вводная: модуль должен добавлять ДО и ПОСЛЕ страницы заданные куски.
Фичность будет уточняться по мере написания/помощи.
Решил использовать шаблоном ngx_http_headers_filter_module.
Для начала вставить вместо одного из хидеров - верхний layout,
заданный директивой "layout текст_его"
Первым делом - как собрать сервер С этим модулем, чтобы увидеть, что
обрабатывается директива layout ? Я попробовал так:
---------------------------------------------------------------------
1. Скопировал
src/http/modules/ngx_http_headers_filter_module.c
в
src/http/modules/ngx_http_layouts_filter_module.c
---------------------------------------------------------------------
2. Вставил его в файл auto/sources
HTTP_SRCS="src/http/ngx_http.c ...
src/http/ngx_http_header_filter_module.c src/http/ngx_http_layouts_filter_module.c src/http/ngx_http_write_filter_module.c ...
---------------------------------------------------------------------
3. Исправил src/http/ngx_http_layouts_filter_module.c
# diff -u ngx_http_headers_filter_module.c ngx_http_layouts_filter_module.c
--- ngx_http_headers_filter_module.c Fri Dec 30 17:36:26 2005
+++ ngx_http_layouts_filter_module.c Mon Feb 13 06:02:09 2006
@@ -41,7 +41,7 @@
0,
NULL},
- { ngx_string("add_header"),
+ { ngx_string("layout"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
|NGX_CONF_TAKE2,
ngx_http_headers_add,
---------------------------------------------------------------------
Однако make обламывается
s -I src/http -I src/http/modules -o
objs/src/http/ngx_http_header_filter_module.o
src/http/ngx_http_header_filter_module.c
make: don't know how to make src/http/ngx_http_layouts_filter_module.c. Stop in
/home/engineer/nginx-0.3.27.
*** Error code 2
Stop in /home/engineer/nginx-0.3.27 (line 3 of Makefile).
Явно чего-то не хватает...
--
engineer
|