我正在尝试将所有端点(服务发现未解决)重定向到特定的url / lb。
我有一个配置为通过Eureka解析每个/api
请求的Spring Cloud Gateway服务器。
spring:
cloud:
gateway:
discovery:
locator:
lowerCaseServiceId: true
enabled: true
predicates:
- name: Path
args:
pattern: "'/api/'+serviceId.toLowerCase()+'/**'"
filters:
- name: RewritePath
args:
regexp: "'/api/' + serviceId.toLowerCase() + '/(?<remaining>.*)'"
replacement: "'/${remaining}'"
在Eureka中也部署和注册了另一个前端服务。我的目标是将其他所有内容路由到该前端服务。我尝试添加以下路线来做到这一点:
spring:
cloud:
gateway:
discovery:
locator:
lowerCaseServiceId: true
enabled: true
predicates:
- name: Path
args:
pattern: "'/api/'+serviceId.toLowerCase()+'/**'"
filters:
- name: RewritePath
args:
regexp: "'/api/' + serviceId.toLowerCase() + '/(?<remaining>.*)'"
replacement: "'/${remaining}'"
routes:
- id: frontend
order: -1
uri: lb://frontend
predicates:
- name: Path
args:
pattern: "^((?!api).)*$"
但是没有用。
是否有关于如何将eureka中未发现的所有其他路由路由到特定服务/ URL的想法?
感谢您的帮助
答案 0 :(得分:0)
spring:
cloud:
gateway:
discovery:
locator:
lowerCaseServiceId: true
enabled: true
predicates:
- name: Path
args:
pattern: "'/api/'+serviceId.toLowerCase()+'/**'"
filters:
- name: RewritePath
args:
regexp: "'/api/' + serviceId.toLowerCase() + '/(?<remaining>.*)'"
replacement: "'/${remaining}'"
routes:
- id: frontend
order: 10
uri: lb://frontend
predicates:
- Path=/**