Communicating between nginx' modules

Marcus Clyne ngx.eugaia at gmail.com
Mon Dec 21 14:36:19 MSK 2009


Piotr Sikora wrote:
>> I'm really missing a way to identify other modules. It would be really
>> nice if modules had an id (in Apache, that is the filename) that could
>> be looked up by other modules.
>>
>> Any tips on how to identify other modules?
>
> Using ngx_http_copy_filter_module as an example:
>
> First, you need to declare module you want to access:
> "ngx_module_t  ngx_http_copy_filter_module;"
>
> and then you can access it's context using:
> "r->ctx[ngx_http_copy_filter_module.ctx_index]"
>
> Same applies to r->main_conf, r->srv_conf and r->loc_conf.

Or you can just use the functions you'd normally use to access your own 
module, e.g.

ngx_http_conf_get_module_loc_conf (cf, ngx_http_copy_filter_module);

You might want to re-define the loc_conf's etc in a header file, if you 
need to access their members.


Also, what about just using global variables defined in both modules - 
if the modules are both one's you're creating?

Marcus.



More information about the nginx-devel mailing list