Configuring haproxy#

TPAは、 role にhaproxy が含まれるインスタンスにhaproxyをインストールおよび構成します。

デフォルトでは、 haproxyは127.0.0.1:5432 で、同じインスタンスで実行されている Configuring pgbouncer によって転送された要求をリッスンします。要求を転送するhaproxy_backend_servers のリストを指定する必要があります。

TPAは、デフォルトでhaproxyの最新バージョンをインストールします。別のバージョンをインストールするには、 haproxy_package_version: 1.9.15* または有効なバージョン指定子を設定します。

注釈

tpaexec-configure の`package_version` でのワイルドカードの使用の制限を参照してください。

Haproxyパッケージは、アーキテクチャのタイプに応じて選択されます。 EDB管理のhaproxyパッケージを使用できますが、サブスクリプションが必要です。必要に応じて、 PGDGエクストラリポジトリからのパッケージをインストールできます。

haproxy インスタンスで次の変数を設定できます。

Variable

Default value

Description

haproxy_bind_address

127.0.0.1

バインドするhaproxyのアドレス。

haproxy_port

5432 (5444 for EPAS)

haproxyがリッスンするTCPポート。

haproxy_read_only_port

5433 (5445 for EPAS)

読み取り専用ロードバランサーのTCPポート。

haproxy_backend_servers

None

Postgresインスタンス名のリスト。

haproxy_maxconn

`max_connections`×0.9

バックエンドサーバーごとに許可される接続の最大数。デフォルトは、バックエンドの`max_connections`設定から取得されます。

haproxy_peer_enabled

True*

既知のハプロキシホストを`peer`リストとして追加します。 *`False` `failover_manager`がharpまたはpatroniの場合。

読み取り専用ロードバランサー#

データベースへの読み取り専用アクセスを追加ポートでリッスンするようにHaproxyを構成できます。現在、これはPatroniフェールオーバーマネージャーでのみサポートされています。バックエンドヘルスチェックは、現在レプリカとして機能しているPostgresインスタンスを特定し、ラウンドロビンロードバランシングを使用してトラフィックを分散します。

読み取り専用ロードバランサーはデフォルトで無効になっています。 haproxy_read_only_load_balancer_enabled: true を設定することによりオンにできます。

サーバーオプション#

TPAは、 default-server 行とバックエンドサーバーごとに1行があるバックエンドで/etc/haproxy/haproxy.cfg を生成します。最初のサーバーを除くすべては「バックアップ」サーバーとしてマークされます。

default-server 行にオプションを追加するには、 haproxyインスタンスのオプションのリストにhaproxy_default_server_extra_options を設定します。

各バックエンドの個々のサーバー行にオプションデフォルトをオーバーライドするには、 haproxy_server_options をバックエンドサーバーのオプションのリストに設定します。

例#

instances:

- Name: one
  vars:
    haproxy_server_options:
    - maxconn 33

- Name: two
…

- Name: proxy
  role:
  - haproxy
  vars:
    haproxy_backend_servers:
    - one
    - two
    haproxy_default_server_extra_options:
    - on-error mark-down
    - on-marked-down shutdown-sessions