ngnix中location與proxy_pass配置規則
location配置用於匹配請求的URL,即ngnix中的$request_uri變量
proxy_pass配置用於轉發URL
loacation匹配順序
(location =) > (location 完整路徑) > (location ^~ 路徑) > (location ~,~* 正則順序) > (location 部分起始路徑) > (/)
location = /uri =開頭表示精確匹配,只有完全匹配上才能生效。
location ^~ /uri ^~ 開頭對URL路徑進行前綴匹配,並且在正則之前。
location ~ pattern ~開頭表示區分大小寫的正則匹配。
location ~* pattern ~*開頭表示不區分大小寫的正則匹配。
location /uri 不帶任何修飾符,也表示前綴匹配,但是在正則匹配之后,如果沒有正則命中,命中最長的規則。
location / 通用匹配,任何未匹配到其它location的請求都會匹配到,相當於switch中的default。
location與proxy_pass代理規則
location是否以“/”結尾
沒有“/”為模糊匹配,有“/”為精確匹配
proxy_pass是否以“/”結尾
在nginx中配置proxy_pass時,當在后面的url加上了/,相當於是絕對路徑,則nginx不會把location中匹配的路徑部分加入代理uri;如果沒有/,則會把匹配的路徑部分加入代理uri
如果被代理服務器是一組服務器的話,可以使用upstream指令配置后端服務器組。
upstream proxy_name
{
server http://192.168.0.1/uri;
server http://192.168.0.2/uri;
}
server模塊
proxy_pass proxy_name;
注意:如果組內的各個服務器都指明了傳輸協議 http:// ,那么在proxy_pass 指令中就不用指明了。反之也是如此。
傳送門
https://blog.csdn.net/oMaoYanEr/article/details/82557764