Welcome! Log In Create A New Profile

Advanced

Re: Use variable instead of flag for modules.

Maxim Dounin
February 23, 2010 03:56PM
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

_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

Use variable instead of flag for modules.

Matthieu Tourne February 23, 2010 01:28PM

Re: Use variable instead of flag for modules.

Maxim Dounin February 23, 2010 03:56PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 198
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready