Я пытаюсь направить трафик с nginx на определенный IP, соответствующий пути.
По сути, если я обращаюсь к http://example.com/192.168.0.2/something
, я хочу перенаправить трафик на модуль с этим конкретным IP-адресом (результат должен быть https://192.168.0.2/something
).
Я попробовал это (и несколько вариантов), но, похоже, это не сработало.
location ~* "([0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3})\/(.*)" {
proxy_pass http://192.168.219.174:8080$uri;
proxy_set_header Host $host;
}
Я даже попробовал статическую версию (и несколько вариаций), как показано ниже
location ~* "/test/" {
rewrite "/test/(.*)" /$1 break;
proxy_pass http://192.168.219.174:8080
proxy_set_header Host $host;
}
Есть ли способ этого добиться?
решение1
Я не понимаю, как ваша конфигурация соотносится с вашим вопросом (я вижу только бэкэнд со статическим IP-адресом 192.168.219.174
), возможно, вы имеете в виду что-то вроде
location ~* "(?<pod_ip>[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3})(?<route>/.*)" {
rewrite ^ $route break;
proxy_pass http://$pod_ip;
}