Communicating between nginx' modules

Marcus Clyne ngx.eugaia at
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?


More information about the nginx-devel mailing list