项目介绍
- 前端项目 renren-fast-vue,baseurl 为
http://localhost:8080/renren-fast,默认连接到后端项目 renren-fast - 后端项目 renren-fast,在端口
8080启动 - 后端项目 mall-product,在端口
11000启动
如果前端想请求后端项目 mall-product 提供的api,如何解决?
- 如想请求
http://localhost:11000/product/category/list/tree - 需要修改前端 baseurl
http://localhost:8080/renren-fast为http://localhost:11000,这样的话,前端又会发生请求不到renren-fast项目下的 api - 如果 mall-product 项目部署多份,分别在不同的端口启动,又怎么解决?
显然,前端请求的 baseurl 应该是一个公共路径。
那么,如何解决公共路径的问题呢?
此时,引入网关。让所有的请求,首先发送到网关,接着网关转发所有请求到相应的微服务即可。
网关微服务 mall-gateway
- 确保 renren-fast 和 mall-product 已经注册到注册中心 nacos 注册过程参考
- 创建 mall-gateway 微服务,并注册到注册中心,启动端口号
13000 - 修改 renren-fast-vue 前端项目的 baseurl 为
http://localhost:13000/api - 解决路径问题
- 原来访问验证码的路径为:
http://localhost:8080/renren-fast/captcha.jpg?uuid=98fcaea6-71d5-43e4-8ce3-e839de8912bf - 通过网关,访问 renren-fast 后端项目,验证码的请求路径为
http://localhost:13000/api/captcha.jpg?uuid=ee83f4f0-1bb8-4f0f-8f2e-d86d1ad305a7,显然访问不到,因为renren-fast后端项目在8080端口启动,并且路径为/renren-fast/captcha.jpg而不是/api/captcha.jpg - 在网关 mall-gateway 的 application.yml 增加如下配置,并重启网关微服务
spring: application: name: mall-gateway cloud: nacos: discovery: server-addr: 127.0.0.1:8848 gateway: routes: - id: admin_route uri: lb://renren-fast # 路由到 renren-fast 后端项目, renren-fast为注册到nacos的名字 predicates
- 原来访问验证码的路径为:

本文介绍了前端项目如何通过网关实现与不同后端服务的通信,包括解决路径问题和跨域问题。通过创建网关微服务mall-gateway并配置路由规则,使得前端请求能正确转发到renren-fast和mall-product服务。同时,通过在网关添加CORS配置,解决了跨域问题,允许前端从不同域名进行请求。最后,调整了网关的路由配置,确保请求能准确到达目标服务。
最低0.47元/天 解锁文章
5954

被折叠的 条评论
为什么被折叠?



