Nginx Reverse Proxy-Umschreibpfad mithilfe der Karte

Nginx Reverse Proxy-Umschreibpfad mithilfe der Karte

Ich versuche, einen Nginx-Reverse-Proxy einzurichten, um eine ID im Pfad durch eine andere ID (auch die Domäne) zu ersetzen. Zum Beispiel
https://somewhere.com/user/123/setting -->https://somewhere.else.com/user/456/setting
Aber ich habe Schwierigkeiten mit den umzuschreibenden Teilen. Kann jemand helfen?

map $old_user_id $new_project_id {
    123        456;
    999        9876;
    12         56;
}

server {
    location ~ ^/api/(?<old_project_id>.+)/store {
        rewrite ^/api/[^/]+(/.*)/store ....... # how to rewrite with the map?
        proxy_pass http://somewhere.else.com/;
    }
}

Antwort1

Der reguläre Ausdruck stimmt nicht mit der ID im Beispiel überein.
Durch die Änderung des Folgenden kann ich mein Problem lösen

location ~ ^/api/(?<project_id>.+)/store {
    rewrite ^/user/(.*)/setting /user/$project_id_2/setting break;
    proxy_pass http://host.docker.internal:8080;
}

verwandte Informationen