ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: использование Berk eleyDB в фильтре



On Tue, Mar 11, 2008 at 03:59:51PM +0200, Alexander Dolgarev wrote:

> Есть необходимость в фильтре для nginx работать с BerkeleyDB
> (Read-Write), правильно ли я понимаю, что открытие базы данных следует
> делать в callback'е для 'init process', а закрывать в 'exit process',
> т.е.
> 
> 
> ngx_module_t  ngx_http_<module name>_module = {
>     NGX_MODULE_V1,
>     &ngx_http_<module name>_module_ctx, /* module context */
>     ngx_http_<module name>_commands,   /* module directives */
>     NGX_HTTP_MODULE,               /* module type */
>     NULL,                          /* init master */
>     NULL,                          /* init module */
>     NULL,                          /* init process */          <------
> открытие DB
>     NULL,                          /* init thread */
>     NULL,                          /* exit thread */
>     NULL,                          /* exit process */         <------
> закрытие DB
>     NULL,                          /* exit master */
>     NGX_MODULE_V1_PADDING
> };
> 
> 
> Еще вопрос, где можно хранить сам хандлер базы данных, кроме как в
> глобальной переменной, если инициализируем мы его при создании
> процесса?

Я мало работал с BDB, но под Апачём я открывал базу в фазе
"module initializer" в основном процессе.

В nginx'е я бы задал путь к базе в main conf и открывал бы базу
в "init main configuration" в основном процессе, а закрывал бы
в cleanup'е, привязанном к пулу конфигурации.

static ngx_http_module_t  ngx_http_core_module_ctx = {
    NULL,                                  /* preconfiguration */
    NULL,                                  /* postconfiguration */

    ngx_http_<...>_create_main_conf,       /* create main configuration */
    ngx_http_<...>_init_main_conf,         /* init main configuration */



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



 




Copyright © Lexa Software, 1996-2009.