2017-09-24 108 views
0

我正在开发一个流程,其中我有ng4 +启动应用在https://host_a:8080上运行,后端服务在https://host_b:8080上有一些API。Zuul路由不起作用,给出了404:Spring Boot + Cloud + Zuul

我在两个主机都有RestController/Path,即我需要一些URL来将localhost(host_a)和其他地址打到host_b。

在application.yml中,我尝试了几乎所有可能的Zuul路由组合,但仍然获得了所有host_b rest API的404。 Host_a API工作良好。

注意:当host_a上没有rest API并且host_a上没有自定义筛选器时,我们可以使用此工具。

  1. 使用过滤器有什么问题吗?我没有看到zuul过滤任何日志后,现在我加入这个控制器HOST_A

我知道我可以使用forward属性路由到本地主机效果很好。但不知何故host_b休息都给出了404错误。

我实现需求 -

  1. http://host_a:8080/api/abc/user在打本地主机,即HOST_A

  2. http://host_a:8080/api/xyz/getall在HOST_B打

  3. 重要的 - 需要一个定制zuul过滤器,增加了一定的头以请求然后按照第2点的说明将其路由到host_b。 - 已经到位,但现在看不到内部日志。

我试过already-

zuul:
   路线:
        XYZ:
           路径:/ API/XYZ/**
           网址:http://host_b:8080/api/xyz

我试过几乎所有的东西,使用前缀,带前缀,只有主办网址,使用前向本地路由等没有什么工作。

请帮助我解决可能的原因,我可能会忽略或丢失什么东西?

在此先感谢。

+0

在Zuul上,您是否尝试过去/ trace和/ routes页面来帮助您排除故障? –

+0

是的,路由映射似乎很好。它显示路线。但无论如何检查请求是否已被路由?根据host_a的请求指向哪个host_b url? – hungrytolearn

+0

>但无论如何检查请求是否已被路由? 是的。 /跟踪。 –

回答

0

最后,我能够解决问题。

1.我不得不改变球衣@Path到井现在从1个弹簧@RestController
2.更改Zuul过滤以999

作品。