Use variable instead of flag for modules.
Maxim Dounin
mdounin at mdounin.ru
Tue Feb 23 23:51:04 MSK 2010
Hello!
On Tue, Feb 23, 2010 at 10:15:06AM -0800, Matthieu Tourne wrote:
> Hi,
>
> I'm currently developing a filter module, and I want to activate it based on
> certain conditions.
> The problem is that the flag is read when the configuration is parsed, and
> putting
> my_module off; inside an if statement has no effect.
>
> I'm now planning on having my module taking variable that can be modified
> inside an if statement. But I haven't been able to find any existing module
> that does that.
>From developer point of view there is no such thing as "if"
statement. There is locations. Using non-rewrite directives
inside "if" means they are used in implicit location created by
"if". Note that this produces various weird things as documented
here:
http://wiki.nginx.org/IfIsEvil
> So I was wondering if the usual way to do this was through rewrites to
> location that have modules enabled or not.
> The problem with that being if you have a lot of conditions then the
> configuration starts being very hard to follow.
>
> Any ideas on how to deal with this ?
Personally I don't recommend allowing anything inside "if" due to
the problems it produce. Either follow "jump to appropriate
configuration" paradigm (via rewrite or return), or implement
needed logic in your own module (in case it's common enough), or
support variables to control your module.
Maxim Dounin
More information about the nginx
mailing list