map module - mass hosting

Maxim Dounin mdounin at mdounin.ru
Wed Apr 23 14:34:54 UTC 2014


Hello!

On Wed, Apr 23, 2014 at 09:27:33AM -0400, beatnut wrote:

[...]

> > Searching within a map is basically identical to searching for 
> > appropriate server{} block, both use the same internal mechanism 
> > (ngx_hash).  As long as you don't use regular expressions,
> > lookup complexity is O(1).
> 
> So using for example:
> 
> .example.com
>  or
> example.*
> 
> have more complexity or  it shoud have full list of subdomains for better
> performance:
> 
> www.example.com
> example.com
> example.somedomain.com

While wildcards require more work on each lookup, complexity is 
still O(1).  Note that regular expressions != wildcard names.

> > Distinct server{} blocks might be more CPU-efficient due to no need to
> > 
> > evaluate variables and dynamically allocate memory for resulting 
> > strings on each request.
> 
> My configuration include one file with server{} per domain.
> exaple.com.conf
> example2.conf 
> etc
> 
> The main improvement i'd like to implement is to have one file with php
> config like   fastcgi.conf above and then include it in every server{} 
> Map module gives me this opportunity. 

This is not something I would recommend to do.  If you have 
server{} block per domain, you should have enough data to write 
configuration without introducing another map ($document_root, 
$server_name, and so on).

Please also see this FAQ article:

http://nginx.org/en/docs/faq/variables_in_config.html

-- 
Maxim Dounin
http://nginx.org/



More information about the nginx mailing list