這篇文章給大家介紹nginx location中如何使用proxy_pass方法,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
1、首先我們回顧一下nginx中l(wèi)ocation的相關(guān)知識
1)location的匹配指令:
2)location 匹配的優(yōu)先級(與location在配置文件中的順序無關(guān))
1.= 精確匹配會第一個(gè)被處理。如果發(fā)現(xiàn)精確匹配,nginx停止搜索其他匹配。
2.普通字符匹配,正則表達(dá)式規(guī)則和長的塊規(guī)則將被優(yōu)先和查詢匹配,也就是說如果該項(xiàng)匹配還需去看有沒有正則表達(dá)式匹配和更長的匹配。
3.^~ 則只匹配該規(guī)則,nginx停止搜索其他匹配,否則nginx會繼續(xù)處理其他location指令。
4.最后匹配理帶有"~"和"~*"的指令,如果找到相應(yīng)的匹配,則nginx停止搜索其他匹配;當(dāng)沒有正則表達(dá)式或者沒有正則表達(dá)式被匹配的情況下,那么匹配程度高的逐字匹配指令會被使用。
2、nginx多個(gè)if里面proxy_pass:
server { listen 127.0.0.1:80; set $test A; set $testB B; location / { if ($test ~* "A") { proxy_pass http://www.so.com; break; } if ($testB ~* "B") { proxy_pass http://www.sogou.com; #break; } } }