9

Is it possible to exclude paths or matchers from the Zuul routing?

The goal is that

  • All requests to /contracts/** are routed to contract.example.com
  • All requests to /audit/** are routed to audit.example.com
  • All requests to /heartbeat/** or /sso/** are served from zuul directly.
  • All other requests (/**) are routed to html.example.com

I have configuration like this:

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

Now the question is how to define that /heartbeat and /sso isn't routed to html.example.com by zuul?

I'm using Spring Boot and its AutoConfiguration.

d0x
  • 11,040
  • 17
  • 69
  • 104

2 Answers2

15

There is a configuration property called ignored-patterns. With this it is possible to define matchers to exclude routes from routing.

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
d0x
  • 11,040
  • 17
  • 69
  • 104
  • Apparently it is `ignoredPatterns`, not `ignored-patterns` – demaniak Jul 22 '16 at 18:37
  • 8
    Zuul does not accepts ignoredPatterns values listed as sequence. Its values should be comma separated, like ignoredPatterns: value1, value2, value3 , as it is implemented as LinkedHashSet – Shafiul Oct 28 '16 at 11:23
  • 3
    @Shafiul is correct, this is still true as of `Brixton.SR6` release: `ignoredPatterns: /foo/**,/bar/**` – nerdwaller Jan 07 '17 at 19:38
3

As of Brixton.SR6 the ignoredPattern properties should be defined different in the application.yml file. It should be defined as follows:

zuul:
ignoredPatterns: /heartbeat/**, /sso/**
routes:
    contract:
        path: /contracts/**
        url: http://contracts.example.com:8080/api
Turbut Alin
  • 2,568
  • 1
  • 21
  • 30