Rewrite handling order

Fasih faskiri.devel at gmail.com
Tue Jan 14 10:45:32 UTC 2014


Hi

I have a custom plugin that handles rewrite (NGX_HTTP_REWRITE_PHASE). There
is another plugin compiled before my plugin that also handles rewrite
(HttpLuaModule). I was expecting to see that my module would rewrite after
lua is done, however that is not the case. Some debugging showed that
whereas my module pushed into the
cmcf->phases[NGX_HTTP_REWRITE_PHASE].handlers after lua, the
cmcf.phase_engine.handlers had lua *after* my module. The culprit seems to
be the following:

static ngx_int_t
ngx_http_init_phase_handlers(ngx_conf_t *cf, ngx_http_core_main_conf_t
*cmcf)
{
..
        ph = cmcf->phase_engine.handlers;
..
        n += cmcf->phases[i].handlers.nelts;

        for (j = cmcf->phases[i].handlers.nelts - 1; j >=0; j--) {
            ph->checker = checker;
            ph->handler = h[j];
            ph->next = n;
            ph++;
        }
}

The order is inverted here (h[j] before h[j-1]). Is this intentional or a
bug?

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20140114/de3607e9/attachment-0001.html>


More information about the nginx-devel mailing list