在nginx实现不限制二级域名,也就是说用*来解析一下域名,可以实现多个域名,二级域名甚至三级域名,四级域名都可以实现,下面将配置说一下。
首先确定是在server的配置项里面添加
server
{
listen 192.168.79.129:80;
server_name localhost,*.test.com;
root /www/html
index index.html index.htm;
if ($host ~ ^(diannao|shouji|yinhang)\.test\.com$)
{
set $erji $1;
rewrite ^(.*)$ /$erji$1 last;
}
location /
{
proxy_pass http://backend_server;
}
}
上面的配置的意思说一下
listen是监听的端口号
servername 是配置的域名,也就是从浏览器里面如何访问,我这里定义的是二级无限域名*.test.com
比如a.test.com b.test.com 都会访问当前的server
root 是指访问本地文件的路径
if ($host ~ ^(diannao|shouji|yinhang)\.test\.com$)
{
set $erji $1;
rewrite ^(.*)$ /$erji$1 last;
}
如果host匹配上面三个名字的.test.com,则进行rewrite的规则。
set 是将if的正则匹配内容给了$erji ,然后将$erji使用到下面的rewrite里面。
last 是当rewrite后不再进行下面的规则匹配。
假设当前访问的是diannao.test.com/forasp.html会直接rewrite到 /www/html/diannao/$1的路径,这里的$1是实际请求url的参数在这里就是
forasp.html.实际访问的文件是/www/html/diannao/forasp.html
然后实现多个二级域名配置,很简单
if ($host ~ ^(.*)\.test\.com$)
{
set $erji $1;
rewrite ^(.*)$ /$erji$1 last;
}
这样就实现了无限个二级域名访问了。