如何使用nginx作为UDP负载均衡器处理来自后端服务器的返回流量

h9vpoimq  于 5个月前  发布在  Nginx
关注(0)|答案(1)|浏览(55)

我有Nginx服务器设置为UDP负载均衡器。我有几个后端服务器正在处理UDP流量,对于后端服务器接收的每个数据包,它都会回复ACK。我能够测试它并在直接向后端服务器发送请求时获得响应,但是当通过Nginx负载均衡器发送数据包时,我没有收到流量。
然而,我看到的是,响应是使用更高的、短暂的端口发送回来的。
这甚至可能与Nginx?我使用标准的社区版本,但如果加版本支持这种行为,这也是一个选项。我如何才能实现这一点?
配置非常简单,如下所示。UDP流量正在进行负载平衡。

stream {
  upstream udp {
    server xx.xx.xx.xx:nnnnn;
     server xx.xx.xx.xx:nnnnn;
  }

  server {
    listen nnnnn udp;
    proxy_pass udp;
    proxy_responses 0;
  }

}

字符串

mzmfm0qo

mzmfm0qo1#

来自客户端的UDP连接通常使用服务器上定义良好的目的端口号,而客户端的端端口号通常是短暂的,这是完全可以的。
由发送方/发起方指定目标机器上的目标端口
如果目的地是服务器(发起者是客户端),则源端口很可能是临时端口,目的地端口很可能是众所周知的端口(1-1024),反之亦然。
无论如何,这应该对你有用(注意proxy_bind属性)

stream {
  server {
    listen nnnn udp;
    proxy_pass udp_servers;
    proxy_responses: 0;
    proxy_bind <IP_ADDRESS_OUTSIDE>;
  }

  upstream udp_servers {
    server xxx.xxx.xxx.xxx:nnnnn;
    server yyy.yyy.yyy.yyy:mmmmm;
  }

}

字符串

相关问题