国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

nginx執行請求的工作原理之location匹配詳解

jlanglang / 3112人閱讀

摘要:作為一名,配置是我們必會的技能項之一。只有請求的路徑與后面的字符串完全相等時,才會命中。舉例表示該規則是使用正則定義的,區分大小寫。舉例匹配優先級最后,我們了解下的查找規則。

作為一名PHPer,配置nginx是我們必會的技能項之一。但是當用戶請求到達nginx之后,是如何匹配到對應的配置項的呢?

location語法規則

首先我們先了解下location的語法規則,location語法規則大致可以分為兩類

一類是指定URL地址:

location [ = | ~ | ~* | ^~ ] uri {
    ... 
}

另一類則是指定自定義名稱:

location @name { 
    ... 
}

@name是對location設置的一個自定義名稱,由@+自定義命名組成,一般用于try_files后面的內部請求,且自定義命名location中不可再嵌套自定義命名location

舉例:

location @xuzheng{
    ...
}
location修飾符含義

上文我們提到location語法規則有一類是指定URL地址,其中運用了一些修飾符,下面我們看下這些修飾符的含義

1、 = 表示精確匹配。只有請求的url路徑與后面的字符串完全相等時,才會命中。

舉例:

location = / {
    ...
}

2、 ~ 表示該規則是使用正則定義的,區分大小寫。

舉例:

location ~ .php$ {
    ...
}

3、 ~* 表示該規則是使用正則定義的,不區分大小寫。

舉例:

location ~* .php$ {
    ...
}

4、^~ 是前綴匹配的一種,但是如果該符號后面的字符被匹配上,則被默認為最佳匹配,即采用該規則,不再進行后續的查找。

舉例:

location ^~ /blogs {
    ...
}
location匹配優先級

最后,我們了解下location的查找規則。下面列出的location查找,從上到下的優先級為從高到低

1、等號類型,精確匹配
2、^~類型,前綴匹配,不支持正則,如果該符號后面的字符匹配被匹配上,則被默認為最佳匹配,不再繼續往下查找
3、~~*類型,正則匹配,~區分大小寫,~*不區分大小寫
4、前綴匹配類型,如location / {}(表示任何以/開頭的URL都匹配)或location /user {},只不過找到合適了還會繼續往下找,直到找到最長匹配
注:使用正則匹配的規則時,順序很重要,location只要找到第一個符合條件的配置規則就會停止查找,即使下面有更匹配的配置

總結 location匹配過程:

1、首先先檢查使用前綴匹配(即字符串匹配)定義的location,選擇最長匹配的項并記錄下來
2、如果找到了精確匹配的location,也就是使用了=修飾符的location,結束查找,使用它的配置。如果沒有找到合適精確匹配,則繼續往下查找
3、如果找到了包含^~的前綴匹配,則停止查找,使用它定義的配置。如果沒有找到合適的帶^~符號的前綴匹配,則繼續往下查找
4、如果找到了使用正則定義的location,則停止查找,使用它定義的配置。如果沒有找到合適的正則匹配,則繼續往下查找
5、使用前面記錄的最長匹配前綴字符location。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40377.html

相關文章

  • docker進階,nginx部署幾個重要點詳解以及開發流程---持續更新

    摘要:無論這個連接是外部主動建立的,還是內部建立的。協議有表示層數據的表示安全壓縮。在整個發展過程中的所有思想和著重點都以一種稱為的文檔格式存在。 部署基礎知識url:協議://網站地址:端口(/)路徑地址?參數eg: http://www.baidu.com:80/abc/dd/ www.baidu.com找服務器 80端口:找服務器上提供服務的應用 nginx uri:/ab...

    KunMinX 評論0 收藏0
  • docker進階,nginx部署幾個重要點詳解以及開發流程---持續更新

    摘要:無論這個連接是外部主動建立的,還是內部建立的。協議有表示層數據的表示安全壓縮。在整個發展過程中的所有思想和著重點都以一種稱為的文檔格式存在。 部署基礎知識url:協議://網站地址:端口(/)路徑地址?參數eg: http://www.baidu.com:80/abc/dd/ www.baidu.com找服務器 80端口:找服務器上提供服務的應用 nginx uri:/ab...

    ytwman 評論0 收藏0
  • 從一份配置清單詳解Nginx服務器配置

    摘要:在本文中,我們繼續延續前文,從前文給出的一份示例配置清單開始,詳解一下服務器的各種配置指令的作用和用法。是否允許同時接收多個網絡連接指令格式該指令默認為狀態,意指每個一次只能接收一個新到達的網絡連接。 showImg(https://segmentfault.com/img/remote/1460000015385948); 概述 在前面《Nginx服務器開箱體驗》 一文中我們從開箱...

    kevin 評論0 收藏0
  • nginx+php執行請求工作原理

    摘要:工作原理首先先了解下常聽說的,,,到底是什么關系,幫助了解的工作原理協議協議用來確定例如,也就是內容分發服務器傳遞過來什么數據,什么樣格式的數據進程解釋器是的協議進程解釋器,每次啟動時,需要經歷加載文件初始化執行環境處理請求返 php工作原理 首先先了解下常聽說的cgi,php-cgi,fastcgi,php-fpm到底是什么關系,幫助了解php的工作原理 cgi協議 cgi協議用來確...

    tuomao 評論0 收藏0

發表評論

0條評論

jlanglang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<