question about the context of map directive

Igor Sysoev igor at
Wed May 4 23:10:00 MSD 2011

On Thu, May 05, 2011 at 02:59:21AM +0800, 杨镭 wrote:
> Hi,
> The context of map directive is *http* as documented on 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.

Igor Sysoev

More information about the nginx mailing list