nginx 将路径中的 ip 流量路由到本地 ip

nginx 将路径中的 ip 流量路由到本地 ip

我正在尝试将流量从 nginx 路由到与路径相对应的特定 IP。

基本上,如果我正在访问http://example.com/192.168.0.2/something,我想将流量重定向到具有该特定 IP 的 pod(结果应该是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;
}

相关内容