ocation 語(yǔ)法
location 有”定位”的意思, 根據(jù)Uri來進(jìn)行不同的定位.
在虛擬主機(jī)的配置中,是必不可少的,location可以把網(wǎng)站的不同部分,定位到不同的處理方式上.
比如, 碰到.php, 如何調(diào)用PHP解釋器? --這時(shí)就需要location
location 的語(yǔ)法
location [=|~|~*|^~] patt {
}
中括號(hào)可以不寫任何參數(shù),此時(shí)稱為一般匹配
也可以寫參數(shù)
因此,大類型可以分為3種
location = patt {} [精準(zhǔn)匹配]
location patt{} [一般匹配]
location ~ patt{} [正則匹配]
如何發(fā)揮作用?:
首先看有沒有精準(zhǔn)匹配,如果有,則停止匹配過程.
location = patt {
config A
}
如果 $uri == patt,匹配成功,使用configA
location = / {
root /var/www/html/;
index index.htm index.html;
}
location / {
root /usr/local/nginx/html;
index index.html index.htm;
}
如果訪問
定位流程是
1: 精準(zhǔn)匹配中 ”/” ,得到index頁(yè)為 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
再來看,正則也來參與.
location / {
root /usr/local/nginx/html;
index index.html index.htm;
}
location ~ image {
root /var/www/image;
index index.html;
}
如果我們?cè)L問
此時(shí), “/” 與”/image/logo.png” 匹配
同時(shí),”image”正則 與”image/logo.png”也能匹配,誰(shuí)發(fā)揮作用?
正則表達(dá)式的成果將會(huì)使用.
圖片真正會(huì)訪問 /var/www/image/logo.png
location / {
root /usr/local/nginx/html;
index index.html index.htm;
}
location /foo {
root /var/www/html;
index index.html;
}
我們?cè)L問
對(duì)于uri “/foo”, 兩個(gè)location的patt,都能匹配他們
即 ‘/’能從左前綴匹配 ‘/foo’, ‘/foo’也能左前綴匹配’/foo’,
此時(shí), 真正訪問 /var/www/html/index.html
原因:’/foo’匹配的更長(zhǎng),因此使用之.;