在nginx實(shí)現(xiàn)不限制二級(jí)域名,也就是說(shuō)用*來(lái)解析一下域名,可以實(shí)現(xiàn)多個(gè)域名,二級(jí)域名甚至三級(jí)域名,四級(jí)域名都可以實(shí)現(xiàn),下面將配置說(shuō)一下。
首先確定是在server的配置項(xiàng)里面添加
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;
}
}
上面的配置的意思說(shuō)一下
Listen是監(jiān)聽(tīng)的端口號(hào)
servername 是配置的域名,也就是從瀏覽器里面如何訪問(wèn),我這里定義的是二級(jí)無(wú)限域名*.test.com
比如a.test.com b.test.com 都會(huì)訪問(wèn)當(dāng)前的server
root 是指訪問(wèn)本地文件的路徑
if ($host ~ ^(diannao|shouji|yinhang)\.test\.com$)
{
set $erji $1;
rewrite ^(.*)$ /$erji$1 last;
}
如果host匹配上面三個(gè)名字的.test.com,則進(jìn)行rewrite的規(guī)則。
set 是將if的正則匹配內(nèi)容給了$erji ,然后將$erji使用到下面的rewrite里面。
last 是當(dāng)rewrite后不再進(jìn)行下面的規(guī)則匹配。
假設(shè)當(dāng)前訪問(wèn)的是diannao.test.com/forasp.html會(huì)直接rewrite到 /www/html/diannao/$1的路徑,這里的$1是實(shí)際請(qǐng)求url的參數(shù)在這里就是
forasp.html.實(shí)際訪問(wèn)的文件是/www/html/diannao/forasp.html
然后實(shí)現(xiàn)多個(gè)二級(jí)域名配置,很簡(jiǎn)單
if ($host ~ ^(.*)\.test\.com$)
{
set $erji $1;
rewrite ^(.*)$ /$erji$1 last;
}
這樣就實(shí)現(xiàn)了無(wú)限個(gè)二級(jí)域名訪問(wèn)了。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄