我有一个相当简单的Spring Cloud Netflix设置。我们使用Zuul作为反向代理,使用Eureka进行服务发现和注册。我们有一些遗留的服务,我们正在慢慢地将其淘汰。我们有许多简单的服务,它们的端点配置如下:
{host}:{port}/{service-name}/**因此,现在当每个服务注册到eureka,并随后将路由添加到Zuul时,zuul端点看起来如下所示:
{zuul-host}:{zuul-port}/{service-name}/{service-name}/**我想阻止Zuul从eureka服务的路由URI中去掉前缀,这样我的zuul端点看起来就像这样:
{zuul-host}:{zuul-port}/{service-name}/**并转发至:
{zuul-host}:{zuul-port}/{service-name}/** 我希望这是这样做的方式,我不必添加每个服务的配置。
我本以为zuul.strip-prefix已经完成了这项工作,但事实似乎并非如此。
当前Zuul application.yml:
zuul:
routes:
oldservice:
path: /oldservice/**
url: http://oldservice-host:9080/api/v1/oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/有没有人对我如何用这种方式配置zuul有建议?
发布于 2016-08-20 04:14:52
既然您正在向eureka注册您的服务,为什么不使用service-id进行路由,如下所示。service-id是您的服务在Eureka中注册时使用的id。
zuul:
routes:
path: /oldservice/**
service-id: oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/对于您当前的场景,我将strip前缀移到了路由中,我在我的系统中就是这样,您可以尝试这样做。
zuul:
routes:
oldservice:
path: /oldservice/**
url: http://oldservice-host:9080/api/v1/oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/https://stackoverflow.com/questions/38978552
复制相似问题