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

相關內容