2016-05-19 20 views
8

Abbiamo 2 domini che puntano al nostro singolo Zuul ELB. Entrambi i siti utilizzano molti degli stessi servizi, quindi anche se il nostro ambiente di produzione sarà impostato in modo leggermente diverso ora abbiamo solo l'unico ZUul ELB.Come configurare percorsi specifici del dominio in Zuul

Come possiamo indirizzare lo stesso percorso a diversi servizi in base al nome del dominio?

vorrei finire con qualcosa di simile:

zuul: 
    host: http://a-zuul-host.elb.amazonaws.com:80 
    ignoredServices: '*' 
    routes: 
    app1: 
     path:/
     domain: app1.com 
     serviceId: APP_1_SERVICE 
    app2: 
     path:/
     domain: app2.com 
     serviceId: APP_2_SERVICE 

Questo è anche possibile o dovrei essere richiesto di installare un'altra istanza Zuul?

risposta

1

Ecco una possibile soluzione:

  1. aggiungere una regola di routing jolly nelle configurazioni Zuul per indirizzare qualsiasi richiesta di/**, e disabilitare strippaggio prefisso per la regola di instradamento.
  2. aggiungere un nuovo filtro di routing di tipo percorso e farlo funzionare prima RibbonRoutingFilter perché un'eccezione si verifica in questo filtro per un host non valida/**.
  3. Aggiungi configurazioni di dominio nelle configurazioni zuul yaml per i tuoi domini diversi.
  4. Utilizzare il filtro insieme alle configurazioni del dominio per modificare l'host in base al dominio.

Ecco un esempio di codice:

zuul: 
    ignored-patterns: /health, /info 
    routes: 
    wildcard: 
     path: /** 
     url: /** 
     stripPrefix: false 

Hai per ignorare /salute perché sta per essere abbinato con la regola di routing jolly, e causerà un problema - dovrebbe essere mappato a uno degli attuatori a molla, quindi lo ignoriamo e lasciamo che tutto sia gestito come prima.

Per le configurazioni di dominio Ecco un esempio:

domain: 
    service_1: 
    domain-matcher: https://api_1.com:[0-9]+ 
    url: https://service_1.com 
    service_2: 
    domain-matcher: https://api_2.com:[0-9]+ 
    url: https://service_2.com 

nel filtro ora basta impostare il nostro ospite in base al dominio corrispondente.

Problemi correlati