欧美性猛交xxx嘿人猛交_又色又爽又高潮免费观看_精品国产一区二区三区久久影院_青娱乐极品视觉盛宴国产视频

技術頻道導航
HTML/CSS
.NET技術
IIS技術
PHP技術
Js/JQuery
Photoshop
Fireworks
服務器技術
操作系統
網站運營

贊助商

分類目錄

贊助商

最新文章

搜索

nginx.conf location 修飾符解釋及示例詳解

作者:admin    時間:2022-9-6 19:39:51    瀏覽:

NGINX 服務器塊中的 location 指令允許將請求路由到文件系統中的正確位置。該指令用于告訴 NGINX 在哪里查找資源,方法是在將位置塊與 URL 匹配時包含文件和文件夾。在本教程中,我們將詳細了解 NGINX location 指令。

nginx.conf location 修飾符解釋及示例詳解

NGINX location 指令語法

NGINX location 塊可以放置在服務器塊內或另一個 location 塊內,但有一些限制。構造 location 塊的語法是:

location [modifier] [URI] {
  ...
  ...
}

location 塊中的修飾符是可選的。在 location 塊中有一個修飾符將允許 NGINX 以不同的方式處理 URL。幾個最常見的修飾符是:

  • none:如果 location 塊中沒有修飾符,則請求的 URI 將與請求的 URI 的開頭匹配。
  • =:等號用于將 location 塊與請求的 URI 完全匹配。
  • ~:波浪號用于區分大小寫的正則表達式匹配請求的 URI。
  • ~*:波浪號后跟星號用于對請求的 URI 進行不區分大小寫的正則表達式匹配。
  • ^~:后跟波浪號的^用于對請求的 URI 執行最長的非正則表達式匹配。如果請求的 URI 命中這樣的 location 塊,則不會發生進一步的匹配。

NGINX 如何選擇 location 塊

可以使用前綴字符串或使用正則表達式來定義 location。不區分大小寫的正則表達式使用前面的“ ~* ”修飾符指定,對于不區分大小寫的正則表達式,使用“ ~ ”修飾符。為了找到一個 URI 的 location 匹配,NGINX 首先掃描使用前綴字符串(沒有正則表達式)定義的 location。此后,正則表達式的 location 會按照它們在配置文件中的聲明順序進行檢查。NGINX 將運行以下步驟來根據請求的 URI 選擇 location 塊。

  • NGINX 首先尋找與 location = /some/path/ 指定的完全匹配,如果找到匹配,則立即提供此塊。
  • 如果沒有這樣的精確 location 塊,則 NGINX 繼續匹配最長的非精確前綴,如果在使用 ^~ 修飾符的 location 找到匹配項,則 NGINX 將停止進一步搜索并選擇此 location 塊來服務請求。
  • 如果匹配的最長前綴 location 不包含 ^~ 修飾符,則臨時存儲匹配并繼續執行以下步驟。
  • NGINX 現在將搜索轉移到包含 ~~* 修飾符的 location 塊,并選擇與請求 URI 匹配的第一個 location 塊,并立即選擇為請求提供服務。
  • 如果在上述步驟中沒有找到可以與請求的 URI 匹配的 location,則使用先前存儲的前綴 location 來為請求提供服務。

NGINX location 塊示例

讓我們列出幾個使用修飾符和 URI 的 NGINX location 塊示例。

1、匹配所有請求的NGINX位置

在以下示例中,前綴位置 / 將匹配所有請求,但如果未找到匹配項,將用作最后的手段。

location / {
    ...
}

2、NGINX 位置匹配準確的 URL

NGINX 總是首先嘗試匹配最具體的前綴位置。因此,以下位置塊中的等號強制與請求的路徑完全匹配,然后停止搜索更多匹配項。

location = /images { 
    ...
}

上面的 location 塊將與 URL https://domain.com/images 匹配,但 URL https://domain.com/images/index.htmlhttps://domain.com/images/ 不會匹配。

3、目錄的 NGINX 位置塊

以下位置塊將匹配任何以 /images/ 開頭的請求,但會繼續為所請求的 URI 搜索更具體的塊。因此,如果 NGINX 沒有找到任何更具體的匹配,則將選擇位置塊。

location /images/ {
     ...
     ...
}

4、NGINX 位置正則表達式示例

以下位置塊中的修飾符^~導致區分大小寫的正則表達式匹配。因此,URI /images/images/logo.png 將被匹配,但一旦找到匹配項就會停止搜索。

location ^~ /images {
   ...
   ...
}

5、image/css/js 文件類型的 NGINX 位置塊

下一個位置塊中的修飾符~*匹配任何以 png、ico、gif、jpg、jpeg、css 或 js 結尾的請求(不區分大小寫)。但是,對文件夾/images/的任何請求都將由先前的位置塊提供服務。

location ~* .(png|ico|gif|jpg|jpeg|css|js)$ {
    ...
    ...
}

6、NGINX 位置 RegEx 區分大小寫匹配

以下位置塊中的修飾符~會導致區分大小寫的正則表達式匹配,但不會停止搜索更好的匹配。

location ~ /images {
    ...
    ...
}

7、NGINX 位置正則表達式不區分大小寫匹配示例

以下位置塊中的修飾符~*會導致不區分大小寫的正則表達式匹配,但搜索不會在此處停止以獲得更好的匹配。

location ~* /images {
     ...
     ...
}

總結

了解 NGINX location 指令對于跟蹤文件系統中請求的 URI 的端點至關重要。本文中討論的修飾符、選擇位置塊的步驟和一些示例將幫助你輕松開始在 NGINX 中使用 location 塊。

相關文章

標簽: nginx  location  
x