【发布时间】:2016-01-12 16:55:33
【问题描述】:
我正在尝试将 Ubuntu 3.2.0-91-generic 上的 haproxy 1.5 配置为 TLS 代理,用于传输到同一台机器上运行的非 TLS 服务器的纯 TCP 流量。本地非 TLS 服务器在端口 9501 上运行,我希望 haproxy 监听端口 9500,解密该端口上的传入 TLS 连接并将未加密的 TCP 流量转发到端口 9501 上的服务器。我在 172.28 上做这一切.11.94,这是绑定到我的 eth0 接口的本地 Intranet 地址。我的 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,就像我在这里所做的那样。任何帮助将不胜感激!
【问题讨论】:
-
我还应该注意到我用 openssl 测试了我的证书文件,它报告它有效且未过期:dlobron@bos-lpjbb:/etc/haproxy$ openssl x509 -in /etc/ haproxy/cert.pem -text 证书:等