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