二、nginx rewrite
=開頭表示精確匹配
^~
開頭表示uri以某個常規字串開頭,不是正則匹配
~開頭表示區分大小寫的正則匹配;
~*
開頭表示不區分大小寫的正則匹配
/通用匹配, 如果沒有其它匹配,任何請求都會匹配到
精確匹配,/後面不能帶任何字元
server
}
匹配所有以/開頭請求
server
}
以開頭/hao_8080攔截 預設開啟不區分大小寫
server
#訪問www.hao.cn/hao_8081 最終跳轉到
location /hao_8081/
#訪問www.hao.cn/hao_8081 最終跳轉到
location /hao_8081/
}
nginx提供的全域性變數或自己設定的變數,結合正規表示式和標誌位實現url重寫以及重定向。rewrite只能放在server{},location{},if{}中,並且只能對網域名稱後邊的除去傳遞的引數外的字串起作用。
rewrite主要的功能就是實現url的重寫,nginx的rewrite規則採用pcre,perl相容正規表示式的語法規則匹配,如果需要nginx的rewrite功能,在編譯nginx之前,需要編譯安裝pcre庫。
通過rewrite規則,可以實現規範的url、根據變數來做url轉向及選擇配置。
nginx的rewrite規則就是使用正則匹配請求的url,然後根據定義的規則進行重寫和改變,需ngx_http_rewrite_module模組來支援url重寫功能,該模組是標準模組,預設已經安裝。
變數 含義
$args 這個變數等於請求行中的引數,同$query_string
$content length 請求頭中的content-length欄位。
$content_type 請求頭中的content-type欄位。
$document_root 當前請求在root指令中指定的值。
$host 請求主機頭欄位,否則為伺服器名稱。
$http_user_agent 客戶端agent資訊
$http_cookie 客戶端cookie資訊
$limit_rate 這個變數可以限制連線速率。
$request_method 客戶端請求的動作,通常為get或post。
$remote_addr 客戶端的ip位址。
$remote_port 客戶端的埠。
$remote_user 已經經過auth basic module驗證的使用者名稱。
$request_filename 當前請求的檔案路徑,由root或alias指令與uri請求生成。
$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相同。
## 如果訪問的ip位址為192.168.5.165,則返回403
if ($remote_addr = 192.168.5.166)
## 不允許谷歌瀏覽器訪問 如果是谷歌瀏覽器返回500
Nginx配置中FastCGI的幾個命令
nginx配置一直以來都在程式設計師的工作中不斷的使用,在這個中有很多的問題需要我們不斷的學習,其中fastcgi就是有不少的問題需要我們解決,下面就是關於fastcgi在nginx配置的幾個指令 fastcgi cache path usr local nginx fastcgi cache le...
nginx配置命令 location配置
波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄。進行普通字元精確匹配。定義乙個命名的 location,使用在內部定向時,例如 error page,try files。按配置檔案順序搜尋下...
nginx的配置和命令
你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。cmd命令進入安裝檔案 1 啟動 c server nginx 1.0.2 start nginx 或c server nginx 1...