
Я пытаюсь настроить обратный прокси nginx для перезаписи идентификатора в пути на другой идентификатор (также домен). Например
https://somewhere.com/user/123/setting -->https://somewhere.else.com/user/456/setting
Но у меня возникли трудности с переписыванием частей. Может кто-нибудь помочь?
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/;
}
}
решение1
Регулярное выражение не соответствует идентификатору в примере.
Изменив следующее, я смог решить свою проблему
location ~ ^/api/(?<project_id>.+)/store {
rewrite ^/user/(.*)/setting /user/$project_id_2/setting break;
proxy_pass http://host.docker.internal:8080;
}