nginx 中的 location 指令 是nginxhttpcoremodule中重要指令。location 指令比較簡單,但卻是配置 nginx 過程中不得不去了解的。
location 指令,是用來為匹配的 uri 進行配置,uri 即語法中的"/uri/",可以是字串或正規表示式。但如果要使用正規表示式,則必須指定字首。
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請求...