Proxy-Pass basierend auf Abfrageparametern in Nginx

Proxy-Pass basierend auf Abfrageparametern in Nginx

Gibt es eine Möglichkeit, die Weiterleitung auf der Grundlage von Abfrageparametern zu Proxy-Weiterleitungen? Ich muss die Root-URL-Anforderung per Proxy an Server A weiterleiten. Wenn die Root-URL jedoch bestimmte Abfrageparameter hat, muss ich die Weiterleitung per Proxy an Server B weiterleiten. Wie kann ich das erreichen? Nachfolgend sehen Sie meine aktuelle Konfiguration:

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

Antwort1

ifSie können Anweisungen und Zwischenvariablen verwenden , da proxy_passdiese selbst nicht in einer ifAnweisung enthalten sein können.

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

verwandte Informationen