nginx用正則表達式實現(xiàn)泛域名自動匹配目錄的方法
nginx用正則表達式實現(xiàn)泛域名自動匹配目錄
用nginx可以實現(xiàn)虛擬主機的功能,可以綁定多個網(wǎng)址。
通常主域名都是寫死在配置里面的,所以要增加匹配時,需要手動添加。
基本寫法
最基本的寫法是server{ listen 80; server_name www.a.com; root /html/a; … } server{ listen 80; server_name www.b.com; root /html/b; … }
正則式寫法
域名綁定后,自動匹配到相應(yīng)的目錄中,不需要一個一個域名去寫配置。
匹配目錄為:html/域名/二級域名,例如www.baidu.com會匹配到baidu.com/www目錄下
server { listen 80; # $subdomain 將匹配到二級域名級以上 # $domain 將匹配到一級域名 # $tld 將匹配到根節(jié)點名 server_name ~^((?<subdomain>.*)\.)?(?<domain>[^.]+)\.(?<tld>[a-zA-Z]+)$; #如果沒有$subdomain,則跳轉(zhuǎn)到www if ($subdomain = "") { # set $subdomain "_"; set $subdomain "www"; return 301 $scheme://www.$domain.$tld$request_uri; } root /usr/share/nginx/html/${domain}.${tld}/${subdomain}; }
其他
nginx 的匹配順序,搜索一下有很多文章,我就不詳細說了。
因為正則表達式的匹配優(yōu)先級最低,只有當其他都匹配不到時才會進行正則表達式的匹配,所以不用擔心影響其他的精確匹配。
一般人不會有那么多的域名要匹配,相反,是要屏蔽掉一些惡意的域名指向。
但是測試的時候,為了不影響正在運行的網(wǎng)頁,可以在hosts中添中一條ip 域名記錄,用不存在的域名來測試,這時候就比較有用了。
總結(jié)
到此這篇關(guān)于nginx用正則表達式實現(xiàn)泛域名自動匹配目錄的文章就介紹到這了,更多相關(guān)nginx正則表達式泛域名匹配目錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx出現(xiàn)The plain HTTP request was sent to HTTPS port問題解決方法
這篇文章主要介紹了Nginx出現(xiàn)The plain HTTP request was sent to HTTPS port問題解決方法,需要的朋友可以參考下2015-04-04Nginx location 和 proxy_pass路徑配置問題小結(jié)
本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,進行測試,完全還原了整個測試過程,本文給大家介紹Nginx location 基本配置及相關(guān)配置文件,感興趣的朋友跟隨小編一起看看吧2021-09-09Nginx、Apache、Lighttpd禁止目錄執(zhí)行php配置示例
這篇文章主要介紹了Nginx、Apache、Lighttpd禁止目錄執(zhí)行php配置示例,本文給出了單個目錄、多個目錄的禁止執(zhí)行PHP的方法,需要的朋友可以參考下2014-09-09利用nginx + fastcgi實現(xiàn)圖片識別服務(wù)器
這篇文章主要給大家介紹了關(guān)于如何利用nginx + fastcgi實現(xiàn)圖片識別服務(wù)器的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-03-03