人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

Nginx的location的常見規(guī)則優(yōu)先級問題

發(fā)布日期:2022-01-28 19:48 | 文章來源:gibhub

locaiton有四種類型的匹配規(guī)則,分別為完全匹配(=)、前綴普通匹配(^~)、正則表達(dá)式匹配(~或者~*)、普通匹配

規(guī)則

  • 等號類型(=)的優(yōu)先級最高。一旦匹配成功,則不再查找其他匹配項(xiàng)
  • 前綴普通匹配(^~)優(yōu)先級次之。不支持正則表達(dá)式。使用前綴匹配,如果有多個(gè)location匹配的話,則使用表達(dá)式最長的那個(gè)
  • 正則表達(dá)式類型(~ ~*)的優(yōu)先級次之。一旦匹配成功,則不再查找其他匹配項(xiàng)
  • 常規(guī)字符串匹配,如果有多個(gè)location匹配的話,則使用表達(dá)式最長的那個(gè)

說明

  • 先判斷精準(zhǔn)命中,如果命中,立即返回結(jié)果并結(jié)束解析過程
  • 若未結(jié)束,判斷前綴普通命中,如果有多個(gè)命中,使用表達(dá)式“最長”的命中結(jié)果,結(jié)束解析過程
  • 若未結(jié)束,繼續(xù)判斷正則表達(dá)式的匹配,按正則表達(dá)式順序?yàn)闇?zhǔn),由上至下一旦匹配成功1個(gè),立即返回結(jié)果,并結(jié)束解析過程
  • 若未結(jié)束,繼續(xù)普通命中,普通命中和前綴普通命中相似,順序無所謂,按照location表達(dá)式的長短來確定命中結(jié)果

Location,用來快速進(jìn)行資源定位,定義不同方式來處理或解決url請求,一般有:/ , = /, ~, ~* ,^~
優(yōu)先級是:(location = /)>(localtion^~)>(location ~| ~* )>(location /)
其中,~ 與 ~*,誰在上面先匹配誰.

一、Location / 匹配

# "/" 是直接到nginx發(fā)布目錄/usr/local/nginx/html/里來查資源,比如location.html
location / {
        root   html;
        index  index.html index.htm;
    }

在發(fā)布目錄里創(chuàng)建location.html文件,內(nèi)容為:this is location.html。
執(zhí)行172.16.0.9/location.html時(shí),服務(wù)器發(fā)布目錄里找這個(gè)location.html文件,并把結(jié)果this is loction.html返回出來,如下:

root@backupserver:/usr/local/nginx/html# ls
50x.html  index.html
root@backupserver:/usr/local/nginx/html# echo "this is  location.html" > ./location.html
root@backupserver:/usr/local/nginx/html# ls
50x.html  index.html  location.html
root@backupserver:/usr/local/nginx/html# /usr/local/nginx/sbin/nginx -s reload
root@backupserver:/usr/local/nginx/html# curl 172.16.0.9/location.html
this is  location.html
root@backupserver:/usr/local/nginx/html# 

二、Location = / 匹配

精準(zhǔn)定位 一般用來匹配某個(gè)文件,優(yōu)先級高于 /
比如:
在nginx配置文件中增加一個(gè)location = / ,定位到/data目錄。如下:

server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            autoindex on;
            root   html;
            index  index.html index.htm;
        }
        location = /location.html {
            root /data/;
            index index.html;
        }

重啟Nginx服務(wù),測試:
1、先不在/data/目錄創(chuàng)建location.html。
可以看到,報(bào)404錯(cuò)誤。這是因?yàn)椋? / 優(yōu)先級高于/ ,服務(wù)器去第二個(gè)location里尋找location.html這個(gè)文件,而不是去第一個(gè)location里找。由于第二個(gè)location指定的目錄是/data,/data目錄下沒有l(wèi)ocation.html文件

在/data目錄下創(chuàng)建location.html文件

root@backupserver:/usr/local/nginx/html# ls /data/
www
root@backupserver:/usr/local/nginx/html# echo "this is  other location.com" > /data/location.html
root@backupserver:/usr/local/nginx/html# ls
50x.html  index.html  location.html
root@backupserver:/usr/local/nginx/html# curl 172.16.0.9/location.html
this is  other location.com
root@backupserver:/usr/local/nginx/html#

上面可以看到,訪問 服務(wù)器是,服務(wù)器首先去location = /里面找,即使它在另一個(gè)location下面。精準(zhǔn)匹配優(yōu)先級是最高的,它不論是在配置文件內(nèi)容上面還是下面,服務(wù)器首先去找精準(zhǔn)匹配的內(nèi)容

除以精準(zhǔn)匹配,還有~ ,~* ,^~
~是對大小寫敏感,匹配時(shí)嚴(yán)格大小寫
~* 是對大小寫不敏感,匹配時(shí)不分大小寫。
^~用來匹配以uri開頭,匹配成功以后,會停止搜索后面的正則表達(dá)式匹配。
以上優(yōu)先最高的是精準(zhǔn)匹配。location = /,其次是:^,然后是 和~* 這兩種看準(zhǔn)在配置文件內(nèi)容上面,就先匹配誰,優(yōu)先級最低的是 /

以上規(guī)則在使用nginx時(shí)會被廣泛使用,比如多臺服務(wù)器做網(wǎng)站動(dòng)靜分離時(shí):

location ~ .*\.(html|htm|js|css|txt|png|jpg|jpeg|doc)$ {
root html;
}

到此這篇關(guān)于Nginx的location的常見規(guī)則優(yōu)先級的文章就介紹到這了,更多相關(guān)Nginx location規(guī)則優(yōu)先級內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

國外服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部