使用 Spring Boot 和 Netflix Zuul 的简单反向代理

Cen*_*nul 5 netflix spring-boot spring-cloud netflix-zuul

我正在寻找使用 Spring Boot 实现一个简单的反向代理,即:

  • 轻松添加路线
  • 能够在每个路由的基础上添加自定义身份验证
  • 根据需要添加其他标头

我查看了注释提供的功能@EnableZuulProxy,但它似乎太重量级了,因为我不想使用 Eureka、Ribbon 或 Hystrix。然而,@EnableZuulServer配置有点轻。

有人能提供一个我所追求的例子吗?Netflix Zuul 是正确的选择吗?还是还有其他我应该考虑的库?

谢谢!

dus*_*ltz 7

简单的反向代理服务器

使用 Spring Boot 可以轻松设置简单的反向代理,无需使用 Ribbon、Eureka 或 Hystrix。

只需使用注释您的主应用程序类@EnableZuulProxy并在配置中设置以下属性:

ribbon.eureka.enabled=false
Run Code Online (Sandbox Code Playgroud)

然后在配置中定义路由,如下所示:

zuul.routes.<route_name>.path=<route_path>    
zuul.routes.<route_name>.url=http://<url_to_host>/
Run Code Online (Sandbox Code Playgroud)

其中<route_name>是路由的任意名称,<route_path>是使用 Ant 样式路径匹配的路径。

所以一个具体的例子是这样的

zuul.routes.userservice.path=users/**
zuul.routes.userservice.url=http://localhost:9999/
Run Code Online (Sandbox Code Playgroud)

自定义过滤器

ZuulFilter您还可以通过扩展和实现该类并将其添加到@Bean您的类中来实现自定义身份验证和任何其他标头@Configuration

那么另一个具体的例子:

ribbon.eureka.enabled=false
Run Code Online (Sandbox Code Playgroud)

进而

zuul.routes.<route_name>.path=<route_path>    
zuul.routes.<route_name>.url=http://<url_to_host>/
Run Code Online (Sandbox Code Playgroud)