问题
I'm using wildcard in server_name
. I want to redirect all subdomains of example.com
(configured as *.example.com) to foo.com
except xyz.example.com
I have configuration as follows
server {
listen 80;
server_name *.example.com;
location / {
proxy_pass http://$1.foo.com;
}
}
I don't want to change any request coming to xyz.example.com
回答1:
You need at least two server blocks, and nginx
will select the more specific server block to handle the request. See this document for details.
You will need a server block for xyz.example.com
such as:
server {
listen 80;
server_name xyz.example.com;
location / {
proxy_pass http://$1.foo.com;
}
}
Then either a default_server
or a wild card server, such as:
server {
listen 80;
server_name *.example.com;
return http://foo.com/;
}
Or:
server {
listen 80 default_server;
return http://foo.com/;
}
来源:https://stackoverflow.com/questions/35037510/how-to-exclude-specific-subdomains-server-name-in-nginx-configuration