詳解Nginx之Location配置(Location匹配順序)
location有”定位”的意思, 主要是根據(jù)Uri來進(jìn)行不同的定位.在虛擬主機(jī)的配置中,是必不可少的.
location可以把網(wǎng)站的不同部分,定位到不同的處理方式上.
1.location的基礎(chǔ)語(yǔ)法
location [=|~|~*|^~] patt { } =:嚴(yán)格匹配。如果這個(gè)查詢匹配,那么將停止搜索并立即處理此請(qǐng)求。 ~:為區(qū)分大小寫匹配(可用正則表達(dá)式)。 ~*:為不區(qū)分大小寫匹配(可用正則表達(dá)式)。 ^~:如果把這個(gè)前綴用于一個(gè)常規(guī)字符串,那么告訴nginx 如果路徑匹配那么不測(cè)試正則表達(dá)式。
2.location如何發(fā)揮作用
3.簡(jiǎn)單實(shí)例證明上述圖片結(jié)論
不帶正則表達(dá)式的匹配過程
location = / { root /var/www/html/; index index.htm index.html; } location / { root /usr/local/nginx/html; index index.html index.htm; }
location配置如上,若訪問http://xxx.com/,定位的流程是:
1:精準(zhǔn)匹配命中"/",得到index頁(yè)為index.htm,所以請(qǐng)求的地址變?yōu)閔ttp://xxx.com/index.htm
2:再次匹配"/index.htm",此次內(nèi)部轉(zhuǎn)跳uri已經(jīng)是"/index.htm",命中普通匹配"/",根目錄為/usr/local/nginx/html
3:最終結(jié)果,訪問了/usr/local/nginx/html/index.htm
帶正則表達(dá)式的匹配過程
location / { root /usr/local/nginx/html; index index.html index.htm; } location ~ image { root /var/www/; index index.html; }
如果我們?cè)L問http://xx.com/image/logo.png。此時(shí)uri為"/image/logo.png"命中了普通匹配"/",也命中了正則匹配"~ image",但是根據(jù)上述圖片中匹配過程分析,最終是正則匹配生效。
所以最終訪問地址為:/var/www/image/logo.png。如果你想最終的匹配路徑為/var/www/logo.png可以把正則匹配中的"root /var/www/";修改為"alias /var/www/"
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。