Gateway配置多个微服务无法正确路由及微服务跨域前端请求无法正确的获取目标路由的响应
1.路由无法匹配到解决
之前开发过程当中发现,在使用gateway的时候,多个微服务之间无法正确路由到正确的地方。
然后发现路由多个微服务时,需要配置内加上一定的前缀以加区分,不然无法转发到目标服务
- 示例配置如下
- id: im-router
uri: lb://im-provider1 # 服务名 下划线无法解析_
predicates:
- Path=/im/**
filters:
- StripPrefix=1 #去掉请求path中的第一层目录
- DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin
- id: posting-router
uri: lb://posting-provider # 服务名 下划线无法解析_
predicates:
- Path=/post/**
filters:
- StripPrefix=1 #去掉请求path中的第一层目录
- DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin
- id: m-router
uri: lb://manage #服务名 下划线无法解析_
predicates:
- Path=/m/**
filters:
- StripPrefix=1 #去掉请求path中的第一层目录
- DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin
#不同服务需要Path区别,不然无法转发到全部
2.前端请求无法正确的获取目标路由的响应
原因
- 路由配置处未配置跨域
解决
加上
这一行,允许跨域
- DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin
- id: m-router
uri: lb://manage #服务名 下划线无法解析_
predicates:
- Path=/m/**
filters:
- StripPrefix=1 #去掉请求path中的第一层目录
- DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin