一、location規則
理解location規則前,先了解一下uri和url
uri :統一資源識別符號
像 /data/nginx/sanjin
就表示的是資源
url :統一資源定位符
像 /data/nginx/sanjin/
表示的是路徑
location規則優先順序
= 精確匹配優先順序最高
^~ 可理解為匹配url路徑
~ 區分大小寫的正則匹配
~* 不區分大小寫的正則匹配
!~ 區分大小寫不匹配正則
!~* 不區分大小寫不匹配正則 例項
二、nginx位址重寫
為什麼要進行nginx位址重寫實現**跳轉
~實現url偽靜態太化,方便被搜尋引擎收錄和人們記憶
~url中暴露資訊太多,靜態化的url位址安全性更高些
server
server
#location /abc
#location /2015
#location /
#}#location /
#}#location /
#}#location /login
#location /uplook
location / if(
$host ~* "^(.*)\.sanjin\.com$")}
#location / ##}
}
(注:注意配置host)
十種應用場景
nginx 位址重寫語法
rewrite :重定向uri
rewrite 原位址 目標位址 flag
last 相當於apache裡的[l]標記,表示完成rewrite
break 本條規則匹配完成後,終止匹配,不再匹配後面的規則 (應用場景十)
redirect ==302 返回302臨時重定向,瀏覽器位址會顯示跳轉後的url位址
permanent == 301 返回301永久重定向,瀏覽器位址會顯示跳轉後url位址
$args 請求中的引數;
$document_root 針對當前請求的根路徑設定值;
$host 請求資訊中的"host",如果請求中沒有host行,則等於設定的伺服器名;
$limit_rate 對連線速率的限制;
$request_method 請求的方法,比如"get"、"post"等;
$remote_addr 客戶端位址;
$remote_port 客戶端埠號;
$remote_user 客戶端使用者名稱,認證用;
$request_filename 當前請求的檔案路徑名(帶root指定的路徑)
$request_uri 當前請求的檔案路徑名(不帶root指定的路徑 /images/a.jpg)
$ query_string 與$args相同;
$scheme 用的協議,比如http或者是https
$server_protocol 請求的協議版本,「http/1.0"或"http/1.1」;
$server_addr 務器位址,如果沒有用listen指明伺服器位址, 使用這個變數將發起一次系統呼叫以取得位址;
$server_name 請求到達的伺服器名;
$ document_uri 與$uri一樣,uri位址;
$server_port 請求到達的伺服器端口號;
nginx之location 匹配規則
語法規則location uri 模式 含義location uri 表示精確匹配,只有完全匹配上才能生效 location uri 開頭對url路徑進行字首匹配,並且在正則之前。location pattern 開頭表示區分大小寫的正則匹配 location pattern 開頭表示不區分大小寫的...
nginx之location匹配規則
1.概述nginx server 塊下的乙個指令,每個server塊可以包含多個location塊。2.作用 1 基於nginx伺服器接收到的請求字串 例如 server name abc 對除虛擬主機名稱 也可以是ip別名 之外的字串 例如 abc 進行匹配,對特定的匹配進行處理 2 位址定向 資...
Nginx詳解Location匹配規則
本文我們來給大家詳細介紹下nginx中的核心配置檔案中的location匹配規則。location會嘗試根據使用者請求中的uri來匹配上面的 uri表示式,如果可以匹配,就選擇location 塊中的配置來處理使用者請求。當然,匹配方式是多樣的,下面介紹location的匹配規則。語法 locati...