我正在尝试在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,就像我在这里做的那样。任何帮助将不胜感激!
答案 0 :(得分:0)
HAProxy邮件列表上非常有帮助的人指出了我的问题:我的服务器节的第一行是:
listen rtt 172.28.11.94:9500
这告诉HAProxy绑定到172.28.11.94:9500,然后"绑定"我的配置文件中的行告诉它第二次绑定到同一个点 - 因此错误。我将节的第一行改为:
listen rtt
现在很好。