Ssl
在同一台伺服器上執行 Hudson、Sonar 和 HA 代理
我在同一台伺服器上執行 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 和埠)。