On Sun, Mar 14, 2021 at 05:43:19PM +0000, SP ADD wrote: Hi there,
What follows is based on my reading of the docs; I may have missed something, and I am happy to be corrected by someone who knows what really happens. > In my module, ngx_module_type is set to HTTP, so ngx_module_order doesn't > apply. It is not clear to me that that "so" statement is true. Have you documentation to show that it is? What happened when you tried it? > I'm sorry, I'm not sure what "stock module" means, I guess it means a > built-in module, i.e. a module that can be enabled or disabled just by the > parameters of the "configure" script, without having to download the source > code of the module, e.g. ngx_http_flv_module and ngx_http_rewrite_module. > You are correct. Perhaps "standard" modules would have been a better term for me to use. > If I am correct, I will list below the questions I would like to ask and > hopefully the questions below are clear and unambiguous. What control do you want, specifically? My reading suggests that the "static" module order is "from the ./configure line, --add-module order", and the "dynamic" module order is "from the nginx.conf file, load_module order", where the dynamic modules have the option to list which named modules they should run before. (And: order is only relevant within the same phase; you did mention that already.) If you want more control than that, you may want to ship an nginx binary configured the way you want it, without load_module support. (And you probably don't want to do that.) > * How to control the order of execution between the dynamic stock module and > my dynamic module. As the developer, I think that you do not know which stock modules are dynamic. But you do know the names of the (current) stock modules. If you want to be "after" a stock module, "load_module" after it in nginx.conf. If you want to be "before" a stock module, set your ngx_module_order to your name then the stock module name. > * How to control the order of execution between the dynamic stock module and > my static module. You don't. You will be "before" (absent circumstances you can't control). > * How to control the order of execution between my dynamic non-stock modules > and my dynamic modules. (Corrected to remove the first "my".) load_module order, unless you-or-they know each other's names and set ngx_module_order; in that case, whichever was last in load_module gets to be before whichever names they nominate. > * How to control the order of execution between dynamic non-stock modules and > my static modules. Same as dynamic stock module, except you probably do not know their names in advance. > * How to control the order of execution between static stock modules and my > dynamic modules. You will be "after", unless you set your ngx_module_order. > * How to control the order of execution between static stock modules and my > static modules. ./configure order. > Regarding the last question, have I looked at > https://forum.nginx.org/read.php?2,246978,246999#msg-246999 and can the > answers there be used to control the order between the static stock modules > and my static modules? > I suspect that what is there is still fundamentally correct, yes. Cheers, f -- Francis Daly fran...@daoine.org _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx