Nginx 路由--Location的使用


 

一、 路由--Location的使用

9.1. Location語法規則

語法規則: location [=|~|~*|^~] /uri/ {… }

首先匹配 =,其次匹配^~,其次是按文件中順序的正則匹配,最后是交給 /通用匹配。當有匹配成功時候,停止匹配,按當前匹配規則處理請求。

符號

含義

=

= 開頭表示精確匹配

^~

^~開頭表示uri以某個常規字符串開頭,理解為匹配 url路徑即可(禁止正則匹配)。

~

~ 開頭表示區分大小寫的正則匹配

~*

~* 開頭表示不區分大小寫的正則匹配

!~和!~*

!~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配的正則

/

用戶所使用的代理(一般為瀏覽器)

 

匹配規則優先級如下:

 

 

² =精准匹配命中時,停止location動作,直接走精准匹配,

² 一般匹配(含非正則)命中時,先收集所有的普通匹配,最后對比出最長的那一條

² 如果最長的那一條普通匹配聲明為非正則,直接此條匹配,停止location

² 如果最長的那一條普通匹配不是非正則,繼續往下走正則location

² 按代碼順序執行正則匹配,當第一條正則location命中時,停止location

 

9.2. path匹配過程

 

 

假設http請求路徑為

http://192.168.0.132:8088/mvc/index?id=2 ,匹配過程如下:

² 將整個url拆解為域名/端口/path/params

² 先由域名/端口,對應到目標server虛擬主機

² path部分參與location匹配,path = path1匹配部分 + path2剩余部分

² 進入location方法體內部流程。

² 若是靜態文件處理,則進入目標目錄查找文件:root指令時找path1+path2對應的文件;alias指令時找path2對應的文件

² 若是proxy代理,則形如proxy_pass=ip:port時轉發path1+path2路徑到tomcat;形如proxy_pass=ip:port/xxx時轉發path2路徑到tomcatparams始終跟隨轉發。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM