我正在尝试在ssl模式下使用不同VM上的2个tomcat实例进行haproxy工作(请参阅我之前的问题:HAProxy load balancing with tomcat SSL)。 目前,我设法让haproxy使用以下配置:
defaults
log 127.0.0.1 local0
option tcplog
frontend ft_test
mode http
bind 0.0.0.0:8443 ssl crt haproxy.pem
timeout client 120000ms
default_backend bk
backend bk
mode http
cookie JSESSIONID prefix
server s1 vm1:80 cookie JSESSIONID_SERVER_1 check maxconn 32
server s2 vm2:80 cookie JSESSIONID_SERVER_2 check maxconn 32
timeout connect 5000ms
timeout server 120000ms
haproxy.pem是我从这里复制的文件(用于测试目的):http://blog.exceliance.fr/2012/09/04/howto-ssl-native-in-haproxy/
当我在VM上将端口从80更改为8443时,我尝试访问https://haproxy.vm.ip:8443(与80端口相同),我的浏览器出现502 Bad Gateway
错误。
我猜这与ssl证书有关,但我不知道如何解决这个问题(这些问题对我来说很新,而且我找不到太多信息)。
每个tomcat VM的server.xml(它们都是相同的):
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="${catalina.home}/conf/keystore"
keystorePass="password" />
我是否需要在此处使用与haproxy配置相同的证书?我试过了,但它似乎没有用,我也没有找到haproxy和密钥库文件的例子。
那么,帮帮忙?想法?谢谢! :)
答案 0 :(得分:0)
有同样的问题 -
我无法在没有接收间歇性502和503的情况下正确且一致地处理SSL流量。
我们最终使用了stunnel - http://www.stunnel.org/
设置和配置非常简单。 HAproxy只响应端口80并转发443以上,以便内部流量保持加密状态。
以下是一个示例stunnel.conf文件:
sslVersion = all
options = NO_SSLv2
cert=/etc/stunnel/wildcard.pem
setuid = root
setgid = root
pid = /var/run/stunnel.pid
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
output = /var/log/stunnel.log
[service1]
accept = 10.0.0.10:443
connect = 10.0.0.10:80
TIMEOUTclose = 0
[service2]
accept = 10.0.0.11:443
connect = 10.0.0.11:80
TIMEOUTclose = 0