java – 实现一个行为类似于nginx的Undertow反向代理

出于开发目的,并非每个人都可以在他们的机器上安装nginx(比如我们在
Windows环境中的开发人员),但我们希望能够执行类似于nginx的反向代理.

这是我们非常具体的案例:

>我们在http://0.0.0.0:8081上运行了一个Spring Boot REST服务
>我们在http://0.0.0.0:8082上运行了spring boot web应用程序

我们希望从http://0.0.0.0:8080开始提供这两项服务

所以我们想像这样映射它:

>请求http://0.0.0.0:8080/代理到http://0.0.0.0:8082
>请求http://0.0.0.0:8080/api代理到http://0.0.0.0:8081

这样它就像nginx和url重写反向代理一样工作.

我查看了Undertow的源代码和示例,甚至这个具体示例:Reverse Proxy Example,但这是一个负载均衡器示例,我还没有找到任何涵盖我需要的示例.

此外,我知道Undertow能够做到这一点,因为我们知道我们可以通过Undertow组件配置来配置WildFly以涵盖这个特定情况而不会出现问题,但我们希望自己实现它作为本地开发的轻量级解决方案.

有谁知道这样做的例子?或任何有足够信息来实现此目的的文档?因为我还阅读了Undertow关于反向代理的文档,它根本没用.

谢谢

最佳答案 根据M. Deinum的评论建议,我将使用Zuul Spring Boot组件,而不是尝试使用Undertow,因为它更适合这项任务.

这是一个关于这个教程的链接:

https://spring.io/guides/gs/routing-and-filtering/

希望这可以帮助其他人,因为这是一个非常常见的情况,我不知道关于Spring Boot的Zuul.

点赞