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

歡迎來到夢飛科技

服務器租用

當前優惠活動:

Nginx設置文件中location指令的一些簡樸說明

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

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

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

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,個中第4個帶 “~” 號前綴的為需要正則匹配的location,nginx在舉辦url理會時對這5種差異范例的location具有差異的優先級法則,大抵的法則如下:

1,字符串準確匹配到一個帶 “=” 號前綴的location,則遏制,且利用這個location的設置;

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

3,正則匹配,匹配順序為location在設置文件中呈現的順序。假如匹配到某個正則location,則遏制,并利用這個location的設置;不然,利用步調2中獲得的具有最大字符串匹配的location設置。

       譬喻,對下面的請求有:

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

夢飛科技 - 全球數據中心基礎服務領先供應商

Copyright © 2003-2019 MFISP.COM. 國外服務器租用 IDC公司 版權所有 ? 粵ICP備11019662號

主站蜘蛛池模板: 纳雍县| 婺源县| 武夷山市| 和田市| 鄂托克旗| 丰台区| 西和县| 寻乌县| 南皮县| 安塞县| 罗山县| 土默特左旗| 临清市| 龙海市| 阿坝县| 泗阳县| 大渡口区| 台南市| 绥芬河市| 肃南| 澳门| 雷山县| 依安县| 册亨县| 盐津县| 措美县| 鄯善县| 手游| 斗六市| 廊坊市| 凤庆县| 喜德县| 衡阳市| 卢氏县| 乾安县| 施甸县| 博兴县| 历史| 南充市| 香河县| 广宁县|