語法規則: location [=|~|~*|^~] /uri/
首先匹配=(精確匹配),其次匹配^~(非正則),其次是按檔案中順序的正則匹配,最後是交給 / 通用匹配。當有匹配成功時候,停止匹配,按當前匹配規則處理請求。
注意:= 精準匹配命中時,停止location 動作,直接走 精準匹配;
一般匹配(含非正則)命中時,先收集所有的普通匹配,最後對比出最長的那一條
如果最長的那一條普通匹配宣告為非正則,直接此條匹配,停止location
如果最長的那一條普通匹配不是非正則,繼續往下走 正則 location
按**順序執行正則匹配,當第一條正則location 命中時,停止 location
將url 拆解為 網域名稱/埠/path/params
先將網域名稱/埠,對應到目標虛擬主機 server
path 部分參與 location匹配,path=path1 匹配部分 + path2 剩餘部分
進入location 方法體內部流程
若是靜態檔案處理,則進入 目標目錄查詢檔案: root 指令找 path1 + path2 對應的檔案;alias 指令時找 path2 對應的檔案
若是 proxy **,則**位址 形如: proxy_pass=ip:port 時,**路徑 path1+ path2到目標服務。**位址形如:proxy_pass=ip:port/*** 時,**路徑 path2 到目標服務。params 始終跟隨**。
規則:rewrite regex replacement [flag];
flat: break/last/redirect/permanent
regex 正規表示式
replacement 替換值,新值
flag 後續處理標識
post-read: 接收到完整的http頭部後處理的階段,在uri 重寫之前。一般跳過
server-rewrite: location 匹配前,修改uri 的階段,用於重定向,location塊外的重寫指令(多次執行)
find-config: 尋找匹配的 location 塊配置項(多次執行)
rewrite: 找到location 塊後再修改uri,location 級別的uri 重寫階段(多次執行)
post-rewrite: 防死迴圈,跳轉到 對應階段
preaccess: 許可權預處理
access: 判斷是否允許 這個請求進入
post-access: 向使用者傳送拒絕服務的錯誤碼,用來響應上一階段的拒絕
try-files: 訪問靜態檔案資源
content: 內容生成階段,該階段產生響應,併發送到客戶端
log: 記錄訪問日誌
語法格式:
upstream 負載名
1、輪詢:
upstream order
2、weigth: (根據權重)
upstream order
輪詢機率,weight 和 訪問比例成正比,用於後段伺服器效能不均的情況;
down 暫時不參與負載。
3、ip_hash
upstream order
根據ip 雜湊值,保證 session一致,保證每個客戶端的請求訪問的都是同乙個後段伺服器
nginx匹配規則
nginx的location可以有以下幾個匹配 1.嚴格匹配這個查詢。如果找到,停止搜尋。2.匹配路徑的字首,如果找到,停止搜尋。3.為區分大小寫的正則匹配 4.為不區分大小寫匹配 波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,如果該選項匹配,只匹配該...
nginx匹配規則
模式 含義location uri 表示精確匹配,只有完全匹配上才能生效 location uri 開頭對url路徑進行字首匹配,並且在正則之前。location pattern 開頭表示區分大小寫的正則匹配 location pattern 開頭表示不區分大小寫的正則匹配 location uri...
Nginx路由匹配規則及各種場景例項
location uri 中括號中為路由匹配符號,常見的有 1 精確匹配2 精確字首匹配 3 區分大小寫的正則匹配4 不區分大小寫的正則匹配 5 uri 普通字首匹配 6 通用匹配精確匹配 精確匹配使用 表示,nginx進行路由匹配的時候,精確匹配具有最高的優先順序,請求一旦精確匹配成功nginx會...