如何从zuul路由中排除或忽略特殊路径或路由

d0x*_*d0x 7 spring spring-boot netflix-zuul

是否可以从Zuul路由中排除路径或匹配器?

目标是

  • / contracts/**的所有请求都将路由到contract.example.com
  • / audit/**的所有请求都将路由到audit.example.com
  • / heartbeat/**/ sso/**的所有请求都直接从zuul提供.
  • 所有其他请求(/**)将路由到html.example.com

我有这样的配置:

zuul:
    routes:
        contract:
            path: /contracts/**
            url: http://contracts.example.com:8080/api
        audit:
            path: /audits/**
            url: http://audit.example.com:8080
        html:
            path: /**
            url: http://html.example.com:80
Run Code Online (Sandbox Code Playgroud)

现在的问题是如何定义/ heartbeat/ sso没有被zuul路由到html.example.com?

我正在使用Spring Boot及其AutoConfiguration.

d0x*_*d0x 13

有一个名为ignored-patterns的配置属性.通过这种方式,可以定义匹配器以从路由中排除路由.

zuul:
    ignoredPatterns:
        - /heartbeat/**
        - /sso/**
    routes:
        contract:
            path: /contracts/**
            url: http://contracts.example.com:8080/api
        audit:
            path: /audits/**
            url: http://audit.example.com:8080
        html:
            path: /**
            url: http://html.example.com:80
Run Code Online (Sandbox Code Playgroud)

  • Zuul不接受列为序列的ignoredPatterns值.其值应以逗号分隔,如ignoredPatterns:value1,value2,value3,因为它实现为LinkedHashSet (7认同)
  • @Shafiul是正确的,从'Brixton.SR6`版本开始,这仍然是正确的:`ignoredPatterns:/ foo/**,/ bar/** (3认同)