(5) nginx:location
location 語(yǔ)法
location 有”定位”的意思, 根據(jù)Uri來(lái)進(jìn)行不同的定位.
在虛擬主機(jī)的配置中,是必不可少的,location可以把網(wǎng)站的不同部分,定位到不同的處理方式上.
比如, 碰到.php, 如何調(diào)用PHP解釋器?? --這時(shí)就需要location
location 的語(yǔ)法
location [=|~|~*|^~] patt {
}
中括號(hào)可以不寫(xiě)任何參數(shù),此時(shí)稱為一般匹配
也可以寫(xiě)參數(shù)
因此,大類型可以分為3種
location = patt {} [精準(zhǔn)匹配]
location patt{}? [一般匹配]
location ~ patt{} [正則匹配]
?
如何發(fā)揮作用?:
首先看有沒(méi)有精準(zhǔn)匹配,如果有,則停止匹配過(guò)程.
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;
? }
?
如果訪問(wèn) http://xxx.com/
定位流程是
1: 精準(zhǔn)匹配中 ”/”?? ,得到index頁(yè)為 index.htm
2: 再次訪問(wèn) /index.htm , 此次內(nèi)部轉(zhuǎn)跳uri已經(jīng)是”/index.htm” ,
根目錄為/usr/local/nginx/html
3: 最終結(jié)果,訪問(wèn)了/usr/local/nginx/html/index.htm
?
再來(lái)看,正則也來(lái)參與.
location / {
??????????? root?? /usr/local/nginx/html;
??????????? index? index.html index.htm;
???? ???}
?
location ~ image {
?????????? root /var/www/image;
?????????? index index.html;
}
?
如果我們?cè)L問(wèn)? http://xx.com/image/logo.png
此時(shí), “/” 與”/image/logo.png”匹配
同時(shí),”image”正則 與”image/logo.png”也能匹配,誰(shuí)發(fā)揮作用?
正則表達(dá)式的成果將會(huì)使用.
?
圖片真正會(huì)訪問(wèn) /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問(wèn)http://xxx.com/foo
?對(duì)于uri “/foo”,?? 兩個(gè)location的patt,都能匹配他們
即 ‘/’能從左前綴匹配 ‘/foo’, ‘/foo’也能左前綴匹配’/foo’,
此時(shí), 真正訪問(wèn) /var/www/html/index.html
原因:’/foo’匹配的更長(zhǎng),因此使用之.;
總結(jié)
以上是生活随笔為你收集整理的(5) nginx:location的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (4)nginx:日志以及定时切割日志小
- 下一篇: (8)nginx:反向代理和负载均衡