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