Usando o HAProxy, URL raiz correspondente somente na ACL

7

Usando o HAProxy, quero criar a seguinte configuração:

  • Todas as solicitações, exceto raiz (/), / articles e / blogs, vão para o server1
  • Todos os pedidos de root (/), / articles e / blogs vão para o server2

Não consigo descobrir como corresponder a raiz sem depender de configurar o servidor padrão, o que, então, nega que todas as solicitações sejam enviadas para a regra server1.

Como posso expressar o acima usando o HAProxy?

Um regex pode ser a solução para isso, mas não sou muito bom com o regex, por isso é difícil encontrar uma solução baseada nele.

    
por michaelward82 10.02.2012 / 00:21

1 resposta

7

A resposta para isso foi incrivelmente simples, é claro. A ACL precisava regex corresponder à ^$|^/$|^/articles|^/blogs

Abaixo está o meu conf:

global
  pidfile  /var/run/haproxy.pid
  quiet
  daemon

defaults
  mode  http
  option  httplog
  option  dontlognull
  option http-server-close
  retries 1
  maxconn 1024
  contimeout  15000
  clitimeout  60050
  srvtimeout    1200000

frontend www
  bind :80

  acl is_for_server2 path_reg ^$|^/$|^/articles|^/blogs

  use_backend server2 if is_for_server2

  default_backend server1

backend server1
  option forwardfor
  server server1 10.0.8.1 maxconn 1500

backend blade5
  option forwardfor
  server blade5 10.0.8.2 maxconn 1500
    
por 14.02.2012 / 14:20