根据源将 UDP 和 TCP 流量负载平衡到不同的服务器

根据源将 UDP 和 TCP 流量负载平衡到不同的服务器

我们有一个用例,需要有一个可以处理多个后端的 TCP 和 UDP 流量的负载均衡器。我们希望根据源网络路由流量。例如:

Customer A (192.168.1.0/24) -> Load Balancer -> Backend1
Customer B (192.168.2.0/27) -> Load Balancer -> Backend2

我们过去曾使用过 nginx,如果可能的话还想再次使用它,我们想象它的一些伪配置如下:

stream {
    upstream customerA {
        server backend1:514;
    }
    upstream customerB {
        server backend2:514;
    }

    server {
        listen 514;
    if ($source_ip == '192.168.1.0/24') {
       proxy_pass customerA;
       }
    if ($source_ip == '192.168.2.0/27') {
       proxy_pass customerB;
       }
    }
}

我知道这个话题:根据源IP的Nginx TCP流路由但有评论认为它不会起作用。

我们如何才能实现这个目标?

相关内容