nginx做udp负载均衡

要求:nginx实现UDP负载,upstream server能拿到client ip&port,并向client回包。

背景:nginx server:10.1.1.200。upstream server:10.1.1.100。port:7400。

 

1,安装nginx

nginx默认不支持udp负载,安装编译时加上“--with-stream”

2,nginx配置

nginx.conf

stream {
  server {
      listen 7400 udp reuseport;
      proxy_connect_timeout 100s;
      proxy_responses 0;
      proxy_bind $remote_addr:$remote_port transparent;
      proxy_pass 10.1.1.100:7400;
  }
}

3,upstream配置

//建立流控规则,enp2s0为网卡名。
# tc qdisc add dev enp2s0 root handle 10: htb

//建立修改规则,将src ip从10.1.1.100改为10.1.1.200
# tc filter add dev enp2s0 parent 10: protocol ip prio 10 u32 match ip src 10.1.1.100 match ip sport 7400 0xffff action nat egress 10.1.1.100 10.1.1.200

//查看规则
#tc qdisc show dev enp2s0

//删除规则
#tc qdisc del dev enp2s0 root

 

 

参考:

UDP的反向代理:NGINX

IP Transparency and Direct Server Return with NGINX and NGINX Plus as Transparent Proxy

Linux 高级流控tc

tc match用法

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值