Search code examples
springspring-bootnetflix-zuul

How to exclude or ignore special paths or routes from zuul routing


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.


Solution

  • 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