我有一些与Eureka一起发现的微服务.他们中的大多数提供了一些API.我有"边缘"服务,称为"网关服务",实际上是Zuul代理.问题是有一个Web应用程序.它由网关服务主持了很长时间,并没有任何问题.但是现在我需要在网关后面的单独服务上托管这个客户端.这不是一个问题.我创建了新服务并将Web应用程序放在那里.但问题是网关服务上的Zuul有下一个配置
zuul:
ignoredServices: '*'
prefix: /api
sensitiveHeaders: Cookie, Set-Cookie
routes:
config-service:
path: /conf/**
serviceId: config-service
security-service:
path: /security/**
serviceId: security-service
stripPrefix: false
request-service:
path: /requests/**
stripPrefix: false
Run Code Online (Sandbox Code Playgroud)
我需要这样做,以便用户能够从这样的根路径访问Web应用程序http://app.com/.但是现在我只能通过http://app.com/api/完全不正确的方式访问它.
我的任务是:
/api保留所有其他服务的前缀也非常重要.我试着实施ZuulFilter.但看起来它对根路径没有任何作用,只有当与上述任何路由匹配时才会运行.
我怎样才能做到这一点?
更新:我有一点成功ZuulFilter.我做到了.这是Zuul的配置:
zuul:
ignoredServices: '*'
sensitiveHeaders: Cookie, Set-Cookie
routes:
api: /api/**
config-service:
path: /conf/**
serviceId: config-service
security-service:
path: /security/**
serviceId: security-service
stripPrefix: false
request-service:
path: /requests/**
stripPrefix: false
frontend-host-service:
path: /**
Run Code Online (Sandbox Code Playgroud)
而且ZuulFilter本身
@Bean
public ZuulFilter apiPrefixStrip(RouteLocator …Run Code Online (Sandbox Code Playgroud)