如何在 nginx 配置中排除特定子域 server_name
How to exclude specific subdomains server_name in nginx configuration
我在 server_name
中使用通配符。我想将 example.com
(配置为 *.example.com)的所有子域重定向到 foo.com
除了 xyz.example.com
我有如下配置
server {
listen 80;
server_name *.example.com;
location / {
proxy_pass http://.foo.com;
}
}
我不想更改 xyz.example.com
的任何请求
您至少需要两个服务器块,nginx
将 select 更具体的服务器块来处理请求。有关详细信息,请参阅 this document。
您将需要一个用于 xyz.example.com
的服务器块,例如:
server {
listen 80;
server_name xyz.example.com;
location / {
proxy_pass http://.foo.com;
}
}
然后是 default_server
或通配符服务器,例如:
server {
listen 80;
server_name *.example.com;
return http://foo.com/;
}
或者:
server {
listen 80 default_server;
return http://foo.com/;
}
'*' 通配符被 nginx 忽略:
nginx:[警告] 0.0.0.0.:80 上的服务器名称“*.example.com”冲突,已忽略
我在 server_name
中使用通配符。我想将 example.com
(配置为 *.example.com)的所有子域重定向到 foo.com
除了 xyz.example.com
我有如下配置
server {
listen 80;
server_name *.example.com;
location / {
proxy_pass http://.foo.com;
}
}
我不想更改 xyz.example.com
您至少需要两个服务器块,nginx
将 select 更具体的服务器块来处理请求。有关详细信息,请参阅 this document。
您将需要一个用于 xyz.example.com
的服务器块,例如:
server {
listen 80;
server_name xyz.example.com;
location / {
proxy_pass http://.foo.com;
}
}
然后是 default_server
或通配符服务器,例如:
server {
listen 80;
server_name *.example.com;
return http://foo.com/;
}
或者:
server {
listen 80 default_server;
return http://foo.com/;
}
'*' 通配符被 nginx 忽略:
nginx:[警告] 0.0.0.0.:80 上的服务器名称“*.example.com”冲突,已忽略