HAProxy,具有SSL的PGSQL和单个端口下的多个集群

时间:2019-06-08 14:07:35

标签: postgresql haproxy

在我的用例中,我使用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 个答案:

答案 0 :(得分:1)

我认为您可能需要一个支持协议的代理,例如pgbouncerpgpool

在这两个中,我应该认为pgbouncer在意图和用法上更接近haproxy。