如何逐个配置haproxy端口范围?

时间:2014-11-07 05:14:16

标签: networking ftp haproxy

我想使用haproxy部署一个ftp代理服务器。这是场景:

ftp客户端< ---> ftp-proxy-server(ip:10.0.1.1)< ---> FTP服务器(IP:172.126.1.1)

ftp服务器在端口21上侦听控制命令,数据端口范围[20100-20199]

我在ftp-proxy-server上有haproxy配置:

listen ftp-proxy-server 10.0.1.1:21
    mode tcp
    server ftp-server 172.126.1.1:21

listen ftp-proxy-server 10.0.1.1:20100-20199
    mode tcp
    server ftp-server 172.126.1.1:20100-20199

这是问题,我可以从ftp-client成功登录ftp服务,但无法执行输出“连接被拒绝”消息的ls命令。我想原因是从ftp-proxy-server到ftp-server的端口映射是随机的。所以当ftp-client获得一个保留端口时(例如20101),但ftp-proxy-server可能会将其映射到另一个端口(例如20109),这不是分配给ftp-client的端口ftp-server。

我想到一个配置100个侦听的解决方案,一个侦听一个端口,但编写配置文件很复杂。是一个简单的配置选项来逐个映射端口?就像10.0.1.1:20001 - > 172.126.1.1:20001,10.0.1.1:20002 - > 172.126.1.1:20002。

欢迎任何回答:)

2 个答案:

答案 0 :(得分:5)

您必须从服务器定义中删除端口范围。 haproxy文档显示来自源的相同端口用于目标。

listen ftp-proxy-server 10.0.1.1:20100-20199
    mode tcp
    server ftp-server 172.126.1.1

答案 1 :(得分:0)

对于以代理货币为单位的haproxy 1.5,

listen web *:8080-8090
    mode tcp
    server worker1 10.0.0.1
    server worker2 10.0.0.2

对于debian上的haproxy 1.7,

listen web
    bind *:8080-8090
    mode tcp
    server worker1 10.0.0.1
    server worker2 10.0.0.2