Order of execution of nginx filters

Raghavan, Gopal gopal.raghavan at here.com
Tue Jul 5 04:06:29 UTC 2016


Hi,

I have the following three directives:

location = /hello {
                 hello_world;
                 hola_mundo on;
                 bonjour_monde on;
}

hello_world is an nginx handler module that provides content “hello world”
hola_mundo and bonjour_monde are filters that add to the chain strings “hola mundo” and “bonjour monde” respectively.


Here is the output:
curl  "http://localhost:8090/hello"
hello worldhola mundobonjour monde


Switching the filter directives in location block has no impact on output string.

For eg:

location = /hello {
                 hello_world;
bonjour_monde on;
                 hola_mundo on;
}

Here is the output:
curl  "http://localhost:8090/hello"
hello worldhola mundobonjour monde


How do I control the order of execution of filters?
I already looked at objs/ngx_modules.c and auto/modules. My custom handlers and filters are not listed there.

One thing that I observed is that the order of listing the load_module modules/*.so in conf/nginx.conf does impact the order of execution of the filters.

Is there any other trick to adjust the execution order within the location block?

Thanks,
--
Gopal






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20160705/1fdc9ab4/attachment.html>


More information about the nginx mailing list