Use acl no backend / encolher minha configuração

3

No meu cenário, devo alternar os servidores com base em uma sequência de caracteres de URL contendo &mode=edit ou &mode=create entre meus servidores para equilibrar a carga. Minha configuração é criada via script de cerca de 100 urls / ip diferentes. Meu caminho atual com um frontend e 2 backends é bastante longo e a quantidade enorme de verificações de integridade não é boa para meus servidores ...

Como posso colocar essas coisas juntas em um listen em vez de frontend ? Eu não consigo descobrir como usar ACLs em uma escuta para determinar qual servidor usar.

frontend myFrontend

    bind 127.0.0.1:80
    bind 127.0.0.1:443 ssl crt /etc/haproxy/ssl/myFrontend/myFrontend.pem
    redirect scheme https if !{ ssl_fc }
    use_backend myBackend-edit if { url_sub &mode=edit } or { url_sub &mode=create }
    default_backend myBackend

backend myBackend

    server srv1 1.1.1.1:10201 cookie srv1 ssl check
    server srv2 2.2.2.2:10201 cookie srv1 ssl check backup
    server srv3 3.3.3.3:10201 cookie srv1 ssl check backup

backend myBackend-edit

    server srv1 1.1.1.1:10201 cookie srv1 ssl check backup
    server srv2 2.2.2.2:10201 cookie srv1 ssl check backup
    server srv3 3.3.3.3:10201 cookie srv1 ssl check
    
por Max 16.04.2014 / 18:23

1 resposta

3

a palavra-chave certa é use-server (observe que este é um traço e não um sublinhado como use_backend . Agora minha carga é reduzida e as configurações são menores. Eu só procurei por algo como use_server ...

Este é o meu exemplo de trabalho:

listen myFrontend

    bind 127.0.1.1:80
    bind 127.0.1.1:443 ssl crt /etc/haproxy/ssl/myFrontend/myFrontend.pem
    redirect scheme https if !{ ssl_fc }
    use-server srv2 if { url_sub &mode=edit } or { url_sub &mode=create }
    server srv1 1.1.1.1:10201 cookie srv1 ssl check
    server srv2 2.2.2.2:10201 cookie srv1 ssl check backup
    server srv3 3.3.3.3:10201 cookie srv1 ssl check backup

você também pode usar balanceamento de carga e usar cookies se quiser.

fonte: haproxy manpage | ou use o bonito :)

    
por 23.04.2014 / 13:21