What is the best way to configure virtualhost with map? Varix Posted at Nginx Forum: http://forum.nginx.org/read.php?2,236611,236611#msg-236611
on 2013-02-26 10:32
on 2013-02-26 14:53
On 26 February 2013 09:31, Varix <nginx-forum@nginx.us> wrote: > What is the best way to configure virtualhost with map? The question you have asked is very wide-ranging yet vague. The only answer I can give you is "it depends on what you're trying to achieve". I suggest you formulate a better question. If you include details of the things that you have tried already, this will serve as a good indicator to people on the list that you're not just being lazy, can't be bothered to google, or want people to do your job for you. HTH, Jonathan -- Jonathan Matthews // Oxford, London, UK http://www.jpluscplusm.com/contact.html
on 2013-02-27 12:40
Hallo Jonathan,
I have some proplems with the english language. This is bad in the IT
section.
My problem is, i can't find an complett example to do that for
education.
All I find is
the "old Way" with sites-availbled and sites-enabled, what I have done
for
years.
In January I chance nginx to the new version.
My files in the folder sites-availabled
default
example1.com
example2.com
example3.com
My default file
# default server
#
server {
listen 80 default_server;
server_name _;
access_log logs/default/default.access.log;
error_log logs/default/default.error.log;
root /www/default;
location / {
root /www/default;
index index.html index.htm;
}
location /i/ {
alias /www/123/;
}
# redirect server error pages to the static page /40x.html
#
error_page 400 401 402 403 404 /40x.html;
location = /40x.html {
root /www/default/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /www/default/html;
}
If the IP (xxx.xxx.xxx.xxx) is type in the browser, it shows only domain
example1.com.
After a few days I found the reason for this:
Change: now if the "include" directive with mask is used on Unix
systems, included files are sorted in alphabetical order.
My solution for this is to make a new big nginx.conf
In the part with the serverblocks the latest is the default one and all
is
OK.
This solution is OK for a few domains, but not for many domains.
I read that this can be done with map. But I can't find an example for
this.
Now I am looking for examples how I can do that with map.
This from the nginx docu is not enough for me.
map $http_host $name {
hostnames;
default 0;
example.com 1;
*.example.com 1;
example.org 2;
*.example.org 2;
.example.net 3;
wap.* 4;
}
Varix
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,236611,236669#msg-236669
on 2013-02-27 14:04
Hello! On Wed, Feb 27, 2013 at 06:40:27AM -0500, Varix wrote: > In January I chance nginx to the new version. > # default server > location / { > > } > > > If the IP (xxx.xxx.xxx.xxx) is type in the browser, it shows only domain > example1.com. > > After a few days I found the reason for this: > > Change: now if the "include" directive with mask is used on Unix > systems, included files are sorted in alphabetical order. This can't be a reason as long as you have "default_server" parameter of the "listen" directive properly set for listen sockets used. > > wap.* 4; > } Maps may be used to handle multiple domains in one server block, e.g. to set document root depending on a domain: map $host $server_root { hostnames; default /www/default; foo.example.com /www/foo; foo.example.org /www/foo; bar.example.com /www/bar; } server { listen 80; server_name foo.example.com foo.example.org bar.example.com ...; root $server_root; ... } This aproach may be usable if you have mostly identical handling for many domains, with some minor differences which can be handled using variables. It only makes sense if you have really many domains (thousands of), and can't afford distinct server{} blocks for them. -- Maxim Dounin http://nginx.com/support.html
on 2013-02-27 16:43
Hallo Maxim Dounin, thanks for your answer. It helps me. >This can't be a reason as long as you have "default_server" >parameter of the "listen" directive properly set for listen >sockets used. My thought was, the default file is the first alphabetical file in the folder. And the next domainfile namend with do*.*. As I make the big nginx.conf for the first time I had the same problem. I had the default at the first serverblock. Then I write this serverblock to the end of the serverblocks and all was OK. This alphabetical sort managed something in a other way, I thought. I will test same things in the next days. Thanks Varix Posted at Nginx Forum: http://forum.nginx.org/read.php?2,236611,236677#msg-236677
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.