HAProxy, PGSQL с SSL и несколькими кластерами под одним портом - PullRequest
0 голосов
/ 08 июня 2019

В моем случае использования я использую SSL для подключения к узлам PG, так как я не хочу иметь завершение SSL, я заблокирован для использования режима TCP.

В режиме TCP яне имеют доступа к информации заголовка, особенно хоста.Из-за этого я не могу использовать что-то вроде

# Primary - RW
frontend PGSQL_primary
    bind *:5432

    acl host_pglab hdr(host) -i pglab-db.local
    acl host_stage hdr(host) -i stage-db.local

    use_backend cluster_pglab-primary if host_pglab
    use_backend cluster_stage-primary if host_stage

backend cluster_pglab-primary
    option httpchk OPTIONS /master
    http-check expect status 200
    default-server inter 2s fall 2 rise 2 on-marked-down shutdown-sessions
    server pglab-db-01 pglab-db-01.local:5432 maxconn 100 check check-ssl verify none port 8008
    server pglab-db-02 pglab-db-02.local:5432 maxconn 100 check check-ssl verify none port 8008

backend cluster_stage-primary
    option httpchk OPTIONS /master
    http-check expect status 200
    default-server inter 2s fall 2 rise 2 on-marked-down shutdown-sessions
    server pglab-db-01 stage-db-01.local:5432 maxconn 100 check check-ssl verify none port 8008
    server pglab-db-02 stage-db-02.local:5432 maxconn 100 check check-ssl verify none port 8008

. С клиента подключиться к порту 5432 и перенаправить трафик на pglab или stage основной узел кластера, в зависимости отна имени хоста.

Есть ли альтернатива этому, что я могу избежать использования нового порта для каждого кластера?

1 Ответ

1 голос
/ 08 июня 2019

Думаю, вам понадобится прокси-сервер с поддержкой протокола, например pgbouncer или pgpool .

Из этих двух я думаю, что pgbouncer ближе к haproxy по намерению и использованию.

...