nginx location路徑配置(實路徑和虛路徑)
阿新 • • 發佈:2018-11-08
注:本部落格要說的不是location
的配置規則和內容,而是基於url
的nginx
代理轉發的後端介面的路徑配置。
實路徑和虛路徑?
location
配置路徑時,是分實路徑和虛路徑的,並且路徑會影響到proxy_pass
轉發時的路徑。
假如tomcat
啟動了一個名為online-registration
的工程
登入的後端介面如下所示
@RestController
@RequestMapping("/user/login")
public class UserLoginController {
@RequestMapping()
public Object login () {
return "success";
}
}
nginx
的location
配置如下所示
location /v1/online {
proxy_pass http://1.1.1.1:8080/online-registration/ ;
}
location /v1/online/user {
proxy_pass http://1.1.1.1:8080/online-registration/user ;
}
結合介面的
RequestMapping
和nginx
配置來看:介面的路徑是
/user/login
,location
配置的/v1/online
為虛擬路徑,它的proxy_pass
tomcat
啟動的工程名即可,/v1/online/user
路徑中包含RequestMapping
的關鍵字,它的proxy_pass
路徑需要配置到工程名下的具體介面的路徑。以瀏覽器訪問路徑分析:
http://1.1.1.1/v1/online/user/login
,nginx
匹配url
中的/v1/online
時,proxy_pass
轉發的路徑為:http://1.1.1.1:8080/online-registration/user/login
,正確的訪問後端介面;nginx
匹配到/v1/online/user
時,如果proxy_pass
配置的轉發路徑不加user
時,那麼轉發的請求url
為:http://1.1.1.1:8080/online-registration/login