nginx配置檔案中的location詳解

2021-06-14 03:42:39 字數 1171 閱讀 3656

location

語法:location [=|~|~*|^~] /uri/

預設:否

上下文:server

這個指令隨url不同而接受不同的結構。你可以配置使用常規字串和正規表示式。如果使用正規表示式,你必須使用 ~* 字首選擇不區分大小寫的匹配或者 ~ 選擇區分大小寫的匹配。

確定 哪個location 指令匹配乙個特定指令,常規字串第乙個測試。常規字串匹配請求的開始部分並且區分大小寫,最明確的匹配將會被使用(檢視下文明白 nginx 怎麼確定它)。然後正規表示式按照配置檔案裡的順序測試。找到第乙個比配的正規表示式將停止搜尋。如果沒有找到匹配的正規表示式,使用常規字串的結果。

有兩個方法修改這個行為。第乙個方法是使用 「=」字首,將只執行嚴格匹配。如果這個查詢匹配,那麼將停止搜尋並立即處理這個請求。例子:如果經常發生」/」請求,那麼使用 「location = /」 將加速處理這個請求。

第二個是使用 ^~ 字首。如果把這個字首用於乙個常規字串那麼告訴nginx 如果路徑匹配那麼不測試正規表示式。

總結,指令按下列順序被接受:

1. = 字首的指令嚴格匹配這個查詢。如果找到,停止搜尋。

2. 剩下的常規字串,長的在前。如果這個匹配使用 ^~ 字首,搜尋停止。

3. 正規表示式,按配置檔案裡的順序。

4. 如果第三步產生匹配,則使用這個結果。否則使用第二步的匹配結果。

例子:location = /

例子請求:

注意:按任意順序定義這4個配置結果將仍然一樣。

(location =) > (location 完整路徑 ) >(location ^~ 路徑) >(location ~*, ~ 正則) >(location 部分起始路徑)

正規表示式根據配置檔案中的前後順序影響匹配, 前面的優先匹配. 其它則根據匹配長度來優先匹配.

原文:

nginx 配置檔案中的 location

location 語法 location 有 定位 的意思,根據uri 來進行不同的定位.在虛擬主機的配置中 是必不可少的 location 可以把 的不同部分 定位到不同的處理方式上.比如,碰到.php,如何呼叫 php直譯器 這時就需要 location location 的語法 locatio...

nginx配置檔案

執行使用者 user nobody nobody 啟動程序 worker processes 2 全域性錯誤日誌及pid文件 error log logs error.log notice pid logs nginx.pid 工作模式及連線數上限 events 設定http伺服器,利用他的反向 功...

nginx 配置檔案

ps nginx使用有兩三年了,現在經常碰到有新使用者問一些很基本的問題,我也沒時間一一回答,今天下午花了點時間,結合自己的使用經驗,把nginx的主要配置引數說明分享一下,也參考了一些網路的內容,這篇是目前最完整的nginx配置引數中文說明了。更詳細的模組引數請參考 定義nginx執行的使用者和使...