2016-05-11 26 views
6

Czy można wykluczyć ścieżki lub matchery z trasowania Zuul?Jak wykluczyć lub zignorować specjalne ścieżki lub trasy z routingu zuul

Celem jest to, że

  • Wszystkie wnioski o /umów/** są kierowane do contract.example.com
  • Wszystkie wnioski o /Audyt/** są kierowane do audit.example.com
  • Wszystkie wnioski o /pulsu/** lub /SSO/** podawane są bezpośrednio z użytkownika zuul.
  • Wszelkie inne wnioski (/**) są kierowane do html.example.com

mam konfigurację tak:

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 

Nasuwa się pytanie, jak określić, że /heartbeat i /sso nie jest przekierowany do html.example.com przez zuul?

Używam Spring Boot i jego AutoConfiguration.

Odpowiedz

9

Istnieje właściwość konfiguracyjna o nazwie zignorowanymi wzorcami. Dzięki temu możliwe jest zdefiniowanie dopasowań, aby wykluczyć trasy z routingu.

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 
+0

Podobno jest to "ignoredPatterns', a nie' ignored-patterns' – demaniak

+0

Zaktualizowałem przykład. Thx – d0x

+5

Zuul nie przyjmuje wartości ignoredPatterns wymienionych jako sekwencja. Jego wartości powinny być oddzielone przecinkiem, jak ignorowane: wartość1, wartość2, wartość3, ponieważ jest ona zaimplementowana jako LinkedHashSet – Shafiul

3

Na Brixton.SR6 właściwości ignoredPattern powinny być określone w różny pliku application.yml. Należy go zdefiniować w następujący sposób:

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