我在同一台服务器上运行 Hudson、Sonar 和 HA 代理(这样做是为了 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
如果我将 a 添加default_backend sonar
到 HAProxy 配置中,我可以运行声纳但不能运行 hudson,反之亦然。
我的 HAProxy 配置是这样的
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
任何有关让声纳/哈德逊运行的帮助将不胜感激。
编辑有效的最终配置文件
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
您的配置已设置为
mode tcp
用于该frontend https
块。将其更改为
mode http
,您应该没问题。原因是 HAProxy 不解码您的 HTTP 请求,而只是查看第 4 层信息(源和目标 IP 和端口)。