Usando vários condicionais em haproxy use_backend

1

Sem colchetes, parece que não é possível ter o haproxy selecionado use_backend com base em true and (a or b)

Por exemplo, quero use_backend ClusterA if allowed_src and (method_a or path_b) . Independentemente se eu inverter as condições antes / depois de and , ficarei com uma maneira de atingir o backend com um único valor verdadeiro em vez de exigir allowed_src e um dos method_a ou path_b .

* exemplo atualizado, de forma que todas as três ACL sejam distintas.

    
por haproxy-user1997 16.11.2018 / 02:51

2 respostas

1

A resposta que Vadim escreveu alcança o que você pediu inicialmente. Para corresponder à sua pergunta atualizada, você pode usar a seguinte lógica:

acl allowedsrc src 123.123.123.123
acl mypath path_beg /path_a
use_backend ClusterA if allowedsrc mypath || allowedsrc METH_POST

Como você não mencionou o que estava tentando combinar com a ACL allowedsrc , presumimos que deseja corresponder a determinado endereço IP.

Deixe-me quebrar toda a lógica para inglês simples.

acl allowedsrc corresponde ao IP de origem 123.123.123.123

acl mypath combina URLs que começam com / path_a

A última linha significa que o pedido será poined para ClusterA backend se endereço IP de origem foi 123.123.123.123 e se URL estava começando com / path_a ou se o endereço IP de origem for 123.123.123.123 e o método HTTP for POST.

Em vez de METH_POST, você pode usar diferentes ACLs predefinidas. Confira documentação do HAProxy para ver a lista completa.

    
por 16.11.2018 / 18:46
1
acl allowedsrc .......
acl mypath path_beg /path_a /path_b
use_backend ClusterA if allowedsrc mypath
    
por 16.11.2018 / 08:36

Tags