nginx location 配置詳解


指令作用

匹配指定的請求uri(請求uri不包含查詢字符串,如http://localhost:8080/test?id=10,請求uri是/test)

語法形式

location   [ = | ~ | ~* | ^~ | @]   /uri/     { configuration }

匹配模式及順序

匹配字符串分為兩種:普通字符串(literal string)正則表達式(regular expression),其中 ~ 和 ~* 用於正則表達式, 其他前綴和無任何前綴都用於普通字符串。

1、先匹配普通字符串,將最精確的匹配暫時存儲;
2、然后按照配置文件中的聲明順序進行正則表達式匹配,只要匹配到一條正則表達式,則停止匹配,取正則表達式為匹配結果;
3、如果所有正則表達式都匹配不上,則取1中存儲的結果;
4、如果普通字符串和正則表達式都匹配不上,則報404 NOT FOUND。
location   =   /uri         =開頭表示精確前綴匹配,只有完全匹配才能生效。
location   ^~   /uri        ^~開頭表示普通字符串匹配上以后不再進行正則匹配。
location   ~   pattern     ~開頭表示區分大小寫的正則匹配。
location   ~*   pattern    ~*開頭表示不區分大小寫的正則匹配。
location   /uri                  不帶任何修飾符,表示前綴匹配。
location   /                       通用匹配,任何未匹配到其他location的請求都會匹配到。

注意:正則匹配會根據匹配順序,找到第一個匹配的正則表達式后將停止搜索。普通字符串匹配則無視順序,只會選擇最精確的匹配。

常用配置

alias——別名配置,用於訪問文件系統,在匹配到location配置的URL路徑后,指向alias配置的路徑:

    location   /test/  {

            alias    /usr/local/;

    }
proxy_pass——反向代理配置,用於代理請求,適用於前后端負載分離或多台機器、服務器負載分離的場景,在匹配到location配置的URL路徑后,轉發請求到proxy_pass配置額URL,是否會附加location配置路徑與proxy_pass配置的路徑后是否有"/"有關,有"/"則不附加,如:

    location   /test/  {

            proxy_pass    http://127.0.0.1:8080/;

    }

參考鏈接:

https://www.jianshu.com/p/d3fb148cb5eb 


免責聲明!

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



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