語法:location [ = | ~ | ~* | ^~ ] uri { …一組命令… } http://nginx.org/en/docs/http/ngx_http_core_module.html#location location / {}:表示對/uri/目錄及其子目錄下的所有文件都匹配 ...
語法:location [ = | ~ | ~* | ^~ ] uri { …一組命令… }
http://nginx.org/en/docs/http/ngx_http_core_module.html#location
location / {}:表示對/uri/目錄及其子目錄下的所有文件都匹配。所以”location / {}”的匹配範圍是最大的。
location = /uri/ {}:表示只對目錄或文件進行匹配,不對目錄中的文件和子目錄進行匹配。所以一般只用來做文件匹配
location ~ /uri/ {}:表示區分大小寫的正則匹配。
location ~* /uri/ {}:表示不區分大小寫的正則匹配。
location ^~ /uri/ {}:表示禁用正則匹配,即精確字元串匹配,此時正則中的元字元被解釋成普通字元。
配對規則
nginx先檢查URI的首碼路徑,在這些路徑中找到最精確匹配請求URI的路徑。然後nginx按在配置文件中的出現順序檢查正則表達式路徑,匹配上某個路徑後即停止匹配並使用該路徑的配置,否則使用最大首碼匹配的路徑的配置。
使用”=”首碼可以定義URI和路徑的精確匹配。如果發現匹配,則終止路徑查找。例如請求”/”很頻繁,定義”location = /”可以提高這些請求的處理速度,因為查找過程在第一次比較以後即結束。
配對優先順序
(location = uri ) > (location ^~ uri) > (location *~|~ uri) > (location uri)
等號 > 非正則 > 正則 > 沒有任何符號