博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue proxy匹配规则
阅读量:6367 次
发布时间:2019-06-23

本文共 890 字,大约阅读时间需要 2 分钟。

问题

使用vue-cli3.0的proxy去代理多个服务时,发现有个别代理不成功,但是替换其代理的位置反而成功,比如如下情况:

  1. 如下三个代理设置: (1)第一个"/api"; (2)第二个"/apipc"; (3)第三个"/huangyi";
  2. 依次调用接口如下:
    3.依次请求结果如下:
    发现只有"/api"代理地址的接口请求成功。

修改

  1. 调整代理顺序:
  2. 调用接口不变如上步骤2;
  3. 请求结果如下:
    发现全部接口请求成功。
  4. 再调整回原来的顺序,并按照如下修改:
  5. 调用接口仍旧不变,请求结果如下:
    发现只有"/apipc"代理地址的接口请求失败,其他两个代理地址的接口都访问成功。
  6. 在4的基础上再修改如下:
  7. 调用接口相应修改如下,只改"/apipc"那个接口,其他两个不动:
  8. 请求结果同3:全部接口请求成功。

总结

  1. proxy设置代理,其地址匹配是根据正则匹配,可以看到文中开始设置了如下三个代理,且顺序如下:
  • "/api"
  • "/apipc"
  • "/huangyi"
  1. 对应请求的三个接口如下:
  • "/api/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg"
  • "/apipc/cgi-bin/musicu.fcg"
  • "/huangyi/music/api/getDiscList"

结果: 发现三个接口中都包含"/api",所以访问时正则匹配都会转到第一个的"/api"代理,这样就导致后面两个接口访问不成功;

  1. 当将代理改成如下,表示匹配以如下开头的接口:
  • "^/api"
  • "^/apipc"
  • "^/huangyi"

结果: 发现三个接口中有两个都以"/api开头",所以当访问"/apipc/cgi-bin/musicu.fcg"这个接口时正则匹配都会转到第一个的"^/api"代理,这样就导致该接口访问不成功;

  1. 当将"^/apipc/"代理改成别的名字"^/pc",这样三个接口都对应匹配到个子接口,结果请求接口都成功;

参考链接

具体可以查看vue-cli3.0 proxy使用http-proxy-middleware的官方文档的说明

转载地址:http://xjgma.baihongyu.com/

你可能感兴趣的文章
Nginx的https配置记录以及http强制跳转到https的方法梳理
查看>>
[每天五分钟,备战架构师-1]操作系统的类型和结构
查看>>
springcloud(十三):Eureka 2.X 停止开发,但注册中心还有更多选择:Consul 使用详解...
查看>>
关于Boolean类型做为同步锁异常问题
查看>>
TestLink运行环境:Redhat5+Apache2.2.17+php-5.3.5+MySQL5.5.9-1
查看>>
Get File Name from File Path in Python | Code Comments
查看>>
显示本月每一天日期
查看>>
[转]java 自动装箱与拆箱
查看>>
NET的堆和栈04,对托管和非托管资源的垃圾回收以及内存分配
查看>>
think in coding
查看>>
IdHttpServer实现webservice
查看>>
HTML的音频和视频
查看>>
Unsupported major.minor version 52.0
查看>>
面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式
查看>>
优酷网架构学习笔记
查看>>
把HDFS里的json数据转换成csv格式
查看>>
WEEX-EROS | 集成并使用 bindingx
查看>>
广州牵引力来告诉你学编程先学什么语言好?
查看>>
广州牵引力总结初学者怎样学好UI设计?
查看>>
使用Metrics方法级远程监控Java程序
查看>>