使用nginx的半径负载平衡

使用nginx的半径负载平衡,nginx,radius,Nginx,Radius,我正在使用nginx尝试负载平衡radius流量。对于该场景,我有两台服务器运行seagull radius服务器/客户端 现在我把树莓Pi运行NGIX作为负载BalnCnER在中间。所以我的seagull redius客户端调用raspberry pi的开放端口,nginx将其重定向到seagull redius服务器 我的树莓皮nginx.conf stream { upstream syslog_udp { server 123.456.789.1:1813; } se

我正在使用nginx尝试负载平衡radius流量。对于该场景,我有两台服务器运行seagull radius服务器/客户端

现在我把树莓Pi运行NGIX作为负载BalnCnER在中间。所以我的seagull redius客户端调用raspberry pi的开放端口,nginx将其重定向到seagull redius服务器

我的树莓皮
nginx.conf

stream {
  upstream syslog_udp {
    server 123.456.789.1:1813;
  }
  server {
    listen 1800 udp;
    proxy_pass syslog_udp;
    proxy_responses 0;
  }
}
我使用sudo nc-lk 1800打开端口1800 当我运行seagull radius客户端时,我在raspberry控制台上得到一些乱七八糟的输出。但数据包不会被重定向到seagull服务器

如何正确执行此操作?
seagull radius客户端/服务器示例工作正常。

我找到了这个问题的答案。nginx配置和seagull客户端/服务器端都需要进行一些修改,以发送UDP数据包(Radius)

第一个海鸥客户应该有

<define entity="transport"
    name="trans-ip-v4"
    file="libtrans_ip.so"
    create_function="create_cipio_instance"
    delete_function="delete_cipio_instance"
    init-args="type=udp">
  </define>

  <define entity="channel"
    name="trans-ip-v4"
    protocol="radius-accounting-v1"
    transport="trans-ip-v4"
    open-args="mode=client;dest=123.456.789.50:1800;source=123.456.789.100">
  </define>
在raspberry中,pi端口应打开为
sudo nc-lku 1800
,其IP地址
123.456.789.50

nginx.conf中

stream{
    upstream radius_loadbalance{
        server 123.456.789.1:1813;
        server 123.456.789.2:1813;
    }

    server {
        listen 1800 udp;
        proxy_pass radius_loadbalance;
        proxy_responses 1;
        #error_log logs/radius_lb.log;
    }
}

我希望这将对将来的人有所帮助。

我不认为这是什么负载平衡。你有一个nginx,一个半径。“这只是代理而已。”马克利巴格抱歉,这是我的错。我已经更新了答案。这是使用
tcpdumps
进行测试和验证的。
stream{
    upstream radius_loadbalance{
        server 123.456.789.1:1813;
        server 123.456.789.2:1813;
    }

    server {
        listen 1800 udp;
        proxy_pass radius_loadbalance;
        proxy_responses 1;
        #error_log logs/radius_lb.log;
    }
}