question about the context of map directive
mdounin at mdounin.ru
Thu May 5 00:35:47 MSD 2011
On Thu, May 05, 2011 at 02:59:21AM +0800, 杨镭 wrote:
> 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.
No. Map directive creates a variable and only does something when
(and if) the variable is accessed. There is no performance
penalty for processing requests which doesn't use the variable.
> 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.
Changing map module to provide data based on per-server configs is
possible, but obviously will require extra code.
More information about the nginx