Introspecção da URL HAProxy

4

Eu tenho um aplicativo em que a URL de uma solicitação determina para qual servidor encaminhar a solicitação com base em uma pesquisa de memcache ou banco de dados. Atualmente, é apenas round robin, mas o estado é armazenado apenas em um servidor e esse servidor precisa obter todas as solicitações com um determinado campo. Então eu quero alcançar algo como a seguinte tabela:

  • / Objects / ABC / - > Pesquisa ABC no memcache, retorna servera.local - > %código%
  • / Objects / DEF / - > Lookup DEF no memcache, retorna serverb.local - > %código%

Isso é possível com o HAProxy? Se não, o que mais eu posso usar? Eu realmente não quero duplicar a solicitação de Server A para Server B se Server A obtiver a solicitação, mas Server B for responsável por ela.

Outra solução que pode funcionar para mim é se o aplicativo puder retornar algo que diga ao HAProxy qual host para reenviar o pedido.

    
por Matt Williamson 21.10.2011 / 20:14

1 resposta

0

Isso vai no frontend

acl use_backend1 path_reg ^/Objects/ABC/$
acl use_backend2 path_reg ^/Objects/DEF/$
use_backend backend1 if backend1
use_backend backend2 if backend2
default_backend normal_backend

backend backend1
    ....

backend backend2
    .... 

backend normal_backend
    ....

Algo nesse sentido

    
por 21.10.2011 / 20:36