问题
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.
回答1:
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
回答2:
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
来源:https://stackoverflow.com/questions/37167629/how-to-exclude-or-ignore-special-paths-or-routes-from-zuul-routing