haproxy无法使用ssl选项绑定套接字

时间:2016-01-12 16:55:33

标签: ssl haproxy

我正在尝试在Ubuntu 3.2.0-91-generic上配置haproxy 1.5作为TLS代理,用于在同一台机器上运行的非TLS服务器的普通TCP流量。本地非TLS服务器在端口9501上运行,我希望haproxy在端口9500上侦听,解密该端口上的传入TLS连接,并将未加密的TCP流量转发到端口9501上的服务器。我做了这一切在172.28.11.94上,这是一个本地内部网地址,绑定到我的eth0接口。我的haproxy配置如下所示:

listen  rtt 172.28.11.94:9500
    mode tcp
    bind 172.28.11.94:9500 ssl crt /etc/haproxy/cert.pem
    option tcplog
    server rks 172.28.11.94:9501

haproxy报告这是有效的:

dlobron@bos-lpjbb:/etc/haproxy$ sudo haproxy -f haproxy.cfg -V -c
Configuration file is valid

但是当我运行haproxy时,我收到一个错误:

dlobron@bos-lpjbb:/etc/haproxy$ sudo haproxy -f haproxy.cfg -V   
Available polling systems :
       poll : pref=200,  test result OK
       select : pref=150,  test result FAILED
Total: 2 (1 usable), will use poll.
Using poll() as the polling mechanism.
[ALERT] 011/114700 (6149) : Starting proxy rtt: cannot bind socket  [172.28.11.94:9500]

我验证了端口9501上的本地非TLS服务器没问题:

dlobron@bos-lpjbb:/etc/haproxy$ telnet 172.28.11.94 9501
Trying 172.28.11.94...
Connected to bos-lpjbb (172.28.11.94).
Escape character is '^]'.
203 WELCOME

关于select()不起作用的警告有点奇怪,但似乎它会回到poll(),这应该没问题。但是当我以root身份运行时,我无法弄清楚为什么它不能绑定到端口9500,就像我在这里做的那样。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

HAProxy邮件列表上非常有帮助的人指出了我的问题:我的服务器节的第一行是:

listen  rtt 172.28.11.94:9500

这告诉HAProxy绑定到172.28.11.94:9500,然后"绑定"我的配置文件中的行告诉它第二次绑定到同一个点 - 因此错误。我将节的第一行改为:

listen  rtt

现在很好。