proxy配置轉發代理的坑

一開始的代碼,怎樣調也不通。查了很多資料,配置沒問題。
在這裏插入圖片描述
調換了一下位置就可以了。
在這裏插入圖片描述
解釋:

vue proxy匹配規則
問題
使用vue-cli3.0的proxy去代理多個服務時,發現有個別代理不成功,但是替換其代理的位置反而成功,比如如下情況:
如下三個代理設置: (1)第一個"/api"; (2)第二個"/apipc"; (3)第三個"/huangyi";
依次調用接口如下: 3.依次請求結果如下: 發現只有"/api"代理地址的接口請求成功。
修改
調整代理順序:
調用接口不變如上步驟2;
請求結果如下: 發現全部接口請求成功。
再調整回原來的順序,並按照如下修改:
調用接口仍舊不變,請求結果如下: 發現只有"/apipc"代理地址的接口請求失敗,其他兩個代理地址的接口都訪問成功。
在4的基礎上再修改如下:
調用接口相應修改如下,只改"/apipc"那個接口,其他兩個不動:
請求結果同3:全部接口請求成功。
總結
proxy設置代理,其地址匹配是根據正則匹配,可以看到文中開始設置瞭如下三個代理,且順序如下:
“/api”
“/apipc”
“/huangyi”
對應請求的三個接口如下:
“/api/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg”
“/apipc/cgi-bin/musicu.fcg”
“/huangyi/music/api/getDiscList”
結果: 發現三個接口中都包含"/api",所以訪問時正則匹配都會轉到第一個的"/api"代理,這樣就導致後面兩個接口訪問不成功;
當將代理改成如下,表示匹配以如下開頭的接口:
“^/api”
“^/apipc”
“^/huangyi”
結果: 發現三個接口中有兩個都以"/api開頭",所以當訪問"/apipc/cgi-bin/musicu.fcg"這個接口時正則匹配都會轉到第一個的"^/api"代理,這樣就導致該接口訪問不成功;
當將"/apipc/“代理改成別的名字”/pc",這樣三個接口都對應匹配到個子接口,結果請求接口都成功;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章