Como posso configurar um balanceador de carga Nginx usando um parâmetro GET?

1

Gostaria de saber se é possível equilibrar entre dois servidores usando um parâmetro GET para tomar decisões.

obrigado

    
por Ismael Vacco 19.03.2013 / 21:12

2 respostas

1

Você precisa usar uma declaração if para tomar decisões com base em parâmetros de consulta. No entanto, como a diretiva proxy_pass não é segura para uso dentro de um bloco if , é necessário reescrever a solicitação para um localização diferente. Por exemplo:

location /foo {
    if ($arg_test = "testing") {
        rewrite . /testing;
    }
}

location /testing {
    internal;
    proxy_pass http://localhost:8080;
}
    
por 20.03.2013 / 19:06
0

Você tentou usar if e $request_uri ?

location / {
    if ($request_uri = "/s?q=test") {
        proxy_pass …
    }
}

No entanto, aconselho contra o que precede. Uma maneira melhor seria usar location e $arg_ e filtrar com base em solicitações lógicas, e não na sequência completa de solicitação GET :

location = /s {
    if ($arg_q = "test") {
        proxy_pass …
    }
}
    
por 20.03.2013 / 18:45