我正在尝试使用nginx负载均衡半径流量。对于这种情况,我有两台运行seagull radius服务器/客户端的服务器。
现在,我在中间放置了一个运行nginx的树莓派作为负载平衡器。因此,我的seagull-redius客户端调用raspbeery-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客户端时,我在树莓派控制台上得到了一些乱码。但是数据包不会重定向到Seagull服务器。
如何正确执行此操作? seagull-radius客户端/服务器示例正常工作。
答案 0 :(得分:2)
我找到了答案。在nginx配置和海鸥客户端/服务器端都需要进行一些修改,以发送UDP数据包(半径)。
第一个Seagull客户端应具有
<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>
这里非常重要的部分是source=123.456.789.100
,这在官方的海鸥半径指南中是不存在的。这是海鸥半径客户端服务器。
服务器端只需从init-args="type=udp
更改tcp
:
<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>
在树莓派中,pi端口应打开为sudo nc -lku 1800
,其IP地址为123.456.789.50
在nginx.conf
stream{
upstream radius_loadbalance{
server 123.456.789.1:1813;
}
server {
listen 1800 udp;
proxy_pass radius_loadbalance;
proxy_responses 1;
#error_log logs/radius_lb.log;
}
}
我希望这会对遇到此问题的人有所帮助。