question about the context of map directive

Igor Sysoev igor at sysoev.ru
Wed May 4 23:15:22 MSD 2011


On Wed, May 04, 2011 at 11:10:00PM +0400, Igor Sysoev wrote:
> On Thu, May 05, 2011 at 02:59:21AM +0800, 杨镭 wrote:
> > Hi,
> > 
> > The context of map directive is *http* as documented on wiki.nginx.org. This
> > means all the requests will go through the map filter phase.
> > This is not ideal when you have many virtual hosts.
> > 
> > For example, we've 50+ virtual hosts. When one of them need map variables,
> > the others automatically inherited those settings because there is no way to
> > limit it to server context.
> > 
> > If this is the situation, can someone know the internals of nginx explain
> > why the map module can't work at server level.
> > Thanks.
> 
> The most nginx directives are declarative. This means that nginx
> looks up a map only when it needs a variable value defined via the map.
> There are directives that are really executed: "rewrite" and "if".
> Avoid them.

Also "set" and "break".


-- 
Igor Sysoev



More information about the nginx mailing list