map module - mass hosting
beatnut
nginx-forum at nginx.us
Wed Apr 23 13:27:33 UTC 2014
Thank You for answer.
I've additional questions.
Maxim Dounin Wrote:
-------------------------------------------------------
> Hello!
>
> On Wed, Apr 23, 2014 at 08:07:42AM -0400, beatnut wrote:
>
> > I'd like to use map module for my vhost configuration to setup user
> name in
> > root or fastcgi_pass parameter.
> >
> > At this point i've 300 domains configured and my config look like
> this:
> >
> > http
> > {
> > server {
> > ..........
> > root /home/someuser;
>
> [...]
>
> > I'd like to replace this model by using map module like this
> >
> >
> > http
> > {
> >
> > #map with about 300 domains
> >
> > map $http_host $username {
> > example.com someuser;
> > escample2.com someuser2;
> > .......
> > }
> >
> > server {
> > ..........
> > root /home/$username;
>
> [...]
>
> > My question is - Is this a good idea to use map like this ? Every
> request
> > needs to find out username by $http_host searching through few
> hundreds of
> > domains. Maybe i'm wrong but it can slow down request processing
> > significantly.
> > Any suggestions ?
>
> 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
> 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.
> On the other hand, multiple server{} blocks consume memory for
> each server's configuration, and map{} approach may be more
> effective if there are many mostly identical server{} blocks.
>
> --
> Maxim Dounin
> http://nginx.org/
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,249475,249481#msg-249481
More information about the nginx
mailing list