passe de proxy com base nos parâmetros de consulta no nginx

6

Existe uma maneira de passar o proxy com base nos parâmetros de consulta? Eu preciso de proxy passar a solicitação de url raiz para o servidor A. Mas, se a url raiz tem certos parâmetros de consulta eu preciso para passar proxy para o servidor B. Como posso conseguir isso? Abaixo está minha configuração atual:

    location / {
        proxy_pass  http://xxxxxx;
        proxy_redirect     off;
        proxy_set_header   Host             $host:$server_port;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        client_max_body_size 10m;
    }
    
por abc 29.12.2013 / 10:51

1 resposta

4

Você pode usar as declarações if e as variáveis intermediárias, pois o proxy_pass em si não pode estar dentro de uma instrução if .

location / {
    set $pp_d example.net;
    if ($arg_tld = com) {
        set $pp_d example.com;
    }
    proxy_pass http://$pp_d;
    proxy_redirect off;
    ...
}
    
por 30.12.2013 / 06:14