Назад | Перейти на главную страницу

Запуск 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.X.X.X/sonar или https: /52.X.X.X/hudson, я получаю

No data received
ERR_EMPTY_RESPONSE

Если я добавлю 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-адрес и порты).