1、启动renren-fast后台系统和renren-fast-vue前端系统
2、登录renren-fast-vue,并创建对分类进行管理的菜单(使用elementui的树形控件)
3、renren-fast-vue中编写向后端请求菜单数据的请求
发现请求失败,因为我们查询菜单的请求是11000端口,而这里是8080端口
如果每次都要修改端口,会很麻烦。因为我们可能会上线了许多服务,这些服务都在不同的端口。一个端口的服务不能用了,就用另一个端口的服务。如果每次都修改端口,会很麻烦,所以我们使用注册中心
4、前端项目改成给网关发送请求,由网关给我们路由到指定地址
再启动前端项目,发现重新登陆,并且验证码也没了,这是因为给网关发送的验证码请求,而不是给我们的renren-fast(8080端口)后端服务发送的验证码请求
所以我们让网关默认将所有请求转到renren-fast,所以需要先将renren-fast注册到nacos注册中心
5、在网关的配置文件中配置路由规则
- lb:load balance,负载均衡,即负载均衡到指定的服务,lb后面写服务的名称
- predicates:断言,这里是按照指定的path路径来断言,即/api/?(?
.*)路径中带有api,都将路径转为/renren-fast/${segment}
所以再修改我们的前端项目,带上我们定义的api前缀
6、重启我们的renren-fast和网关服务
发现验证码还是404
- 原因分析:我们这里发送的请求是http://localhost:88/api/captcha.jpg,即给网关发送请求,然后网关发现我们注册的renren-fast服务,并将请求转给renren-fast,
- 即请求路径成了http://renren-fast的路径:8080/api/captcha.jpg,但是我们获取验证码的路径中没有带api,并且带上了我们的项目名(因为renren-fast的配置文件中配置了
- servlet:context-path: /renren-fast)
7、使用网关的路径重写功能来转发到真正的路径
即上面配置文件中的filters(springcloud的文档中有相关介绍)
8、可以正常获取验证码了,但是有跨域问题,下一节解决
标签:网关,请求,22,--,路径,端口,fast,renren From: https://www.cnblogs.com/morehair/p/17028563.html