我有以下两种类型的URL模式。
(zuul网关应用程序的上下文根是gateway
)
使用zuul过滤器,我正在尝试基于secure
和nonsecure
URL模式实现两种不同的逻辑。我已经写了一个预过滤器,似乎对于上面的URL模式甚至没有执行该过滤器。我可以看到网关抛出404
。当我尝试在没有secure
或nonsecure
的情况下访问微服务时,其工作将按预期进行。下面是我到目前为止所做的属性更改。
下游微服务的上下文根是api /用户
zuul.prefix=/secure
zuul.routes.user.path=/api/user/**
zuul.routes.user.service-id=user
zuul.prefix=/nonsecure
zuul.routes.user.path=/api/user/**
zuul.routes.user.service-id=user
我已经尝试过通过给zuul.prefix
来尝试,并且似乎前缀已设置为全局且不能仅适用于特定路由。我该如何实现?任何人都可以请教。谢谢
答案 0 :(得分:0)
如您所述,zuul.prefix
属性会影响所有映射,并且只能定义一次。因此,删除zuul.prefix
属性,并为每个zuul.routes.*.path
属性添加相应的前缀:
zuul.routes.user.path=/secure/api/user/**
zuul.routes.user.service-id=user
zuul.routes.user.path=/nonsecure/api/user/**
zuul.routes.user.service-id=user
请注意,根据documentation:
zuul.stripPrefix
仅适用于zuul.prefix
中设置的前缀。它对给定路由的path
中定义的前缀没有任何影响。