Nginx Location 指令基礎

2021-05-28 01:11:38 字數 1875 閱讀 6212

nginx 中的 location 指令 是nginxhttpcoremodule中重要指令。location 指令比較簡單,但卻是配置 nginx 過程中不得不去了解的。

location 指令,是用來為匹配的 uri 進行配置,uri 即語法中的"/uri/",可以是字串或正規表示式。但如果要使用正規表示式,則必須指定字首。

1
location[=|~|~*|^~|@] /uri/

〖=〗 表示精確匹配,如果找到,立即停止搜尋並立即處理此請求。

〖~ 〗 表示區分大小寫匹配

〖~*〗 表示不區分大小寫匹配

〖^~ 〗 表示只匹配字串,不查詢正規表示式。

〖@〗 指定乙個命名的location,一般只用於內部重定向請求。

首先對字串進行匹配查詢,最確切的匹配將被使用。然後,正規表示式的匹配查詢開始,匹配第乙個結果後會停止搜尋,如果沒有找到正規表示式,將使用字串的搜尋結果,如果字串和正則都匹配,那麼正則優先順序較高。

$args #這個變數等於請求行中的引數。

$content_length #請求頭中的content-length欄位。

$content_type #請求頭中的content-type欄位。

$document_root #當前請求在root指令中指定的值。

$host #請求主機頭欄位,否則為伺服器名稱。

$http_user_agent #客戶端agent資訊

$http_cookie #客戶端cookie資訊

$limit_rate #這個變數可以限制連線速率。

$request_body_file #客戶端請求主體資訊的臨時檔名。

$request_method #客戶端請求的動作,通常為get或post。

$remote_addr #客戶端的ip位址。

$remote_port #客戶端的埠。

$remote_user #已經經過auth basic module驗證的使用者名稱。

$request_filename #當前請求的檔案路徑,由root或alias指令與uri請求生成。

$query_string #與$args相同。

$scheme #http方法(如http,https)。

$server_protocol #請求使用的協議,通常是http/1.0或http/1.1。

$server_addr #伺服器位址,在完成一次系統呼叫後可以確定這個值。

$server_name #伺服器名稱。

$server_port #請求到達伺服器的埠號。

$request_uri #包含請求引數的原始uri,不包含主機名,如:」/foo/bar.php?arg=baz」。

$uri #不帶請求引數的當前uri,$uri不包含主機名,如」/foo/bar.html」。

$document_uri #與$uri相同。

Nginx Location 指令基礎

nginx 中的 location 指令 是nginxhttpcoremodule中重要指令。location 指令比較簡單,但卻是配置 nginx 過程中不得不去了解的。location 指令,是用來為匹配的 uri 進行配置,uri 即語法中的 uri 可以是字串或正規表示式。但如果要使用正規表...

nginx location指令詳解

nginx的http配置主要包括三個區塊,結構如下 http location區段 通過指定模式來與客戶端請求的uri相匹配,基本語法如下 location pattern 1 沒有修飾符 表示 必須以指定模式開始,如 server 那麼,如下是對的 p1 de 2 表示 必須與指定的模式精確匹配 ...

Nginx Location 指令語法解析

本文翻譯自 www.keycdn.com support ngi nginx location是使用 nginx 的過程中必須要掌握的技能,無論是在server blocks還是其他location blocks中都會用到,這篇文章簡單介紹了當請求來臨時location指令是如何處理客戶端uri請求...