在同一台服务器上运行Hudson,Sonar和HA Proxy

我在同一台服务器上运行Hudson,Sonar和HA Proxy(为了POC而这样做,因此不能访问多台服务器。

我正在使用HAProxy为两台服务器启用SSL。

我可以使用以下url从本地访问这些服务器中的每一个:127.0.0.1:9000/sonar和127.0.0.1:8088/hudson

但是,当我尝试使用https:/52.XXX/sonar或https:/52.XXX/hudson远程访问服务器时,我得到

No data received ERR_EMPTY_RESPONSE 

如果我添加一个default_backend sonar到HAProxyconfiguration我可以运行声纳而不是哈德逊,反之亦然。

我的HAProxyconfiguration是这样的

 global log 127.0.0.1 local2 tune.ssl.default-dh-param 2048 defaults mode tcp # Set timeouts to your needs timeout client 1h timeout connect 1h timeout server 1h option http-server-close frontend http mode http bind *:80 compression algo gzip redirect scheme https if !{ ssl_fc } frontend https mode tcp bind *:443 ssl crt /etc/haproxy/buildserver.pem compression algo gzip use_backend sonar if { path_beg /sonar } use_backend hudson if { path_beg /hudson } backend sonar server srv_sonar localhost:9000 backend hudson server srv_hudson localhost:8088 

任何帮助获得双声纳/哈德森运行将不胜感激。

编辑最终configuration文件的作品

 global log 127.0.0.1 local2 tune.ssl.default-dh-param 2048 defaults mode http # Set timeouts to your needs timeout client 1h timeout connect 1h timeout server 1h option http-server-close frontend http bind *:80 compression algo gzip redirect scheme https if !{ ssl_fc } frontend https bind *:443 ssl crt /etc/haproxy/buildserver.pem compression algo gzip use_backend sonar if { path_beg /sonar } use_backend hudson if { path_beg /hudson } backend sonar server srv_sonar localhost:9000 backend hudson server srv_hudson localhost:8088 

您的configuration设置为使用frontend https块的mode tcp

改变mode http ,你应该没问题。

原因是HAProxy没有解码你的HTTP请求,而只是查看第4层信息(源和目标IP和端口)。