欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來(lái)到云服務(wù)器

服務(wù)器租用

Nginx設(shè)置文件中l(wèi)ocation指令的一些簡(jiǎn)樸說(shuō)明

在這一篇文章里,我將先容nginx關(guān)于location的處理懲罰,各人都知道Nginx設(shè)置文件內(nèi)里會(huì)有許多的location,nginx的設(shè)置指令的浸染域可以分為 main,server,location這3個(gè)種,實(shí)際上這3者不是依次包括的干系,而是彼此獨(dú)立的干系,好比一個(gè)只具有main級(jí)別浸染域的指令,是不能寫在某個(gè)server可能location內(nèi)的,模塊的某個(gè)指令可以同時(shí)具有main,server,location這3種浸染域,別的每個(gè)模塊有 main,srv,loc這3個(gè)級(jí)此外設(shè)置,一個(gè)模塊的main級(jí)此外設(shè)置對(duì)所有的server和location都是共享的,srv級(jí)此外設(shè)置對(duì)所有 location都是共享的,location只有本身獨(dú)立的loc級(jí)此外設(shè)置,這就是為什么一個(gè)模塊的srv和loc級(jí)此外設(shè)置需要merge,而 main級(jí)此外設(shè)置不需要merge的原因。這里看起來(lái)有點(diǎn)繞,區(qū)分一下main,server,location別離作為一種浸染域級(jí)別和一個(gè)主體,雷同于形容詞和名字的區(qū)別,nginx的設(shè)置干系照舊不難領(lǐng)略的。

        一般來(lái)說(shuō)一個(gè)請(qǐng)求url過(guò)來(lái),nginx會(huì)將它理會(huì)到某一個(gè)location來(lái)處理懲罰。這個(gè)理會(huì)的進(jìn)程實(shí)際上按照l(shuí)ocation的設(shè)置根基可以分為字符串匹配和正則表達(dá)式匹配這2種。對(duì)付location的組織方法,最簡(jiǎn)樸的就是直接將它們生存為一個(gè)鏈表,理會(huì)url的時(shí)候一個(gè)一個(gè)遍歷即可找到相應(yīng)location,可是這樣效率太低,對(duì)像nginx這種高機(jī)能的處事器來(lái)說(shuō)是完全不行取的,nginx將字符串匹配的location組織成了一個(gè)三叉的字符串排序樹,并且成立的時(shí)候也思量了樹的均衡性。文章后頭我講具體先容源碼的實(shí)現(xiàn)。

        首先我來(lái)或許的先容一下location的種類和匹配法則,以nginx wiki(http://wiki.nginx.org/HttpCoreModule#location)的例子做說(shuō)明:

location = / {
 # matches the query / only.
 [ configuration A ]
}
location / {
 # matches any query, since all queries begin with /, but regular
 # expressions and any longer conventional blocks will be
 # matched first.
 [ configuration B ]
}
location ^~ /images/ {
 # matches any query beginning with /images/ and halts searching,
 # so regular expressions will not be checked.
 [ configuration C ]
}
location ~* .(gif|jpg|jpeg)$ {
 # matches any request ending in gif, jpg, or jpeg. However, all
 # requests to the /images/ directory will be handled by
 # Configuration C.
 [ configuration D ]
}
location @named {
 # Such locations are not used during normal processing of requests,
 # they are intended only to process internally redirected requests (for example error_page, try_files).
 [ configuration E ]
}

        可以看到上面的例子中有5種差異范例的location,個(gè)中第4個(gè)帶 “~” 號(hào)前綴的為需要正則匹配的location,nginx在舉辦url理會(huì)時(shí)對(duì)這5種差異范例的location具有差異的優(yōu)先級(jí)法則,大抵的法則如下:

1,字符串準(zhǔn)確匹配到一個(gè)帶 “=” 號(hào)前綴的location,則遏制,且利用這個(gè)location的設(shè)置;

2,字符串匹配剩下的非正則和非非凡location,假如匹配到某個(gè)帶 "^~" 前綴的location,則遏制;

3,正則匹配,匹配順序?yàn)閘ocation在設(shè)置文件中呈現(xiàn)的順序。假如匹配到某個(gè)正則location,則遏制,并利用這個(gè)location的設(shè)置;不然,利用步調(diào)2中獲得的具有最大字符串匹配的location設(shè)置。

       譬喻,對(duì)下面的請(qǐng)求有:

1, /   ->   準(zhǔn)確匹配到第1個(gè)location,匹配遏制,利用configuration A
2,/some/other/url    ->  首先前綴部門字符串匹配到了第2個(gè)location,然后舉辦正則匹配,顯然沒有匹配上,則利用第2個(gè)location的設(shè)置configurationB
3,/images /1.jpg  ->  首先前綴部門字符串匹配到了第2個(gè)location,可是接著對(duì)第3個(gè)location也前綴匹配上了,并且這時(shí)已經(jīng)是設(shè)置文件內(nèi)里對(duì)這個(gè)url的最大字符串匹配了,而且location帶有 "^~" 前綴,則不再舉辦正則匹配,最終利用configuration C
4,/some/other/path/to/1.jpg  -> 首先前綴部門同樣字符串匹配到了第2個(gè)location,然后舉辦正則匹配,這時(shí)正則匹配樂成,則利用congifuration D

騰訊云代理

Copyright © 2003-2021 MFISP.COM. 國(guó)外vps服務(wù)器租用 夢(mèng)飛云服務(wù)器租用 版權(quán)所有 ? 粵ICP備11019662號(hào)

主站蜘蛛池模板: 茂名市| 县级市| 磐安县| 博白县| 北流市| 泰和县| 蓬莱市| 霸州市| 交口县| 江口县| 乐平市| 丰台区| 招远市| 彝良县| 双鸭山市| 神木县| 遂川县| 德庆县| 佛坪县| 且末县| 上栗县| 三亚市| 蒙山县| 元阳县| 汉沽区| 忻州市| 棋牌| 阳原县| 康保县| 永昌县| 双峰县| 淮南市| 通辽市| 福泉市| 宁陵县| 青田县| 珲春市| 榕江县| 饶阳县| 兴业县| 塔城市|