pase de proxy basado en parámetros de consulta en nginx

pase de proxy basado en parámetros de consulta en nginx

¿Hay alguna manera de pasar el proxy según los parámetros de consulta? Necesito pasar la solicitud de URL raíz por proxy al servidor A. Pero, si la URL raíz tiene ciertos parámetros de consulta, necesito pasar por proxy al servidor B. ¿Cómo puedo lograr esto? A continuación se muestra mi configuración actual:

    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;
    }

Respuesta1

Podrías usar ifdeclaraciones y variables intermedias, ya que proxy_passél mismo no puede estar dentro de una ifdeclaración.

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

información relacionada