1. 程式人生 > >nginx location路徑配置(實路徑和虛路徑)

nginx location路徑配置(實路徑和虛路徑)

注:本部落格要說的不是location的配置規則和內容,而是基於urlnginx代理轉發的後端介面的路徑配置。

實路徑和虛路徑?

location配置路徑時,是分實路徑和虛路徑的,並且路徑會影響到proxy_pass轉發時的路徑。

假如tomcat啟動了一個名為online-registration的工程

登入的後端介面如下所示

@RestController
@RequestMapping("/user/login")
public class UserLoginController {
    @RequestMapping()
    public Object login
() { return "success"; } }

nginxlocation配置如下所示

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 ;
}
  • 結合介面的RequestMappingnginx配置來看:

    介面的路徑是 /user/loginlocation配置的/v1/online為虛擬路徑,它的proxy_pass

    配置到tomcat啟動的工程名即可,/v1/online/user路徑中包含RequestMapping的關鍵字,它的proxy_pass路徑需要配置到工程名下的具體介面的路徑。

  • 以瀏覽器訪問路徑分析:

    http://1.1.1.1/v1/online/user/loginnginx匹配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

    ,這樣會導致訪問不到介面而丟擲異常