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

时间:2016-05-11 15:50:47

标签: 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

现在问题是如何定义 / heartbeat 并且 / sso 不会被zuul路由到 html.example.com

我正在使用Spring Boot及其AutoConfiguration。

2 个答案:

答案 0 :(得分:11)

有一个名为 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

答案 1 :(得分:3)

Brixton.SR6开始,应在application.yml文件中定义ignoredPattern属性。它应该定义如下:

zuul:
ignoredPatterns: /heartbeat/**, /sso/**
routes:
    contract:
        path: /contracts/**
        url: http://contracts.example.com:8080/api