Configuring pgbouncer¶
TPA will install and configure pgbouncer on instances whose role
contains pgbouncer .
By default, pgbouncer listens for connections on port 6432 and forwards
connections to 127.0.0.1:5432 (which may be either Postgres or
Configuring haproxy , depending on the architecture).
You can set the following variables on any pgbouncer instance.
Variable |
Default value |
Description |
|---|---|---|
pgbouncer_port |
6432 |
The TCP port pgbouncer should listen on |
pgbouncer_backend |
127.0.0.1 |
A Postgres server to connect to |
pgbouncer_backend_port |
5432 |
The port that the pgbouncer_backend listens on |
pgbouncer_max_client_conn |
`max_connections`×0.9 |
The maximum number of connections allowed; the default is derived from the backend’s max_connections setting if possible |
pgbouncer_auth_user |
pgbouncer_auth_user |
Postgres user to use for authentication |
Databases¶
By default, TPA will generate /etc/pgbouncer/pgbouncer.databases.ini
with a single wildcard * entry under [databases] to forward all
connections to the backend server. You can set pgbouncer_databases
as shown in the example below to change the database configuration.
Authentication¶
PgBouncer will connect to Postgres as the pgbouncer_auth_user and
execute the (already configured) auth_query to authenticate users.
Example¶
instances:
- Name: one
vars:
max_connections: 300
- Name: two
- Name: proxy
role:
- pgbouncer
vars:
pgbouncer_backend: one
pgbouncer_databases:
- name: dbname
options:
pool_mode: transaction
dbname: otherdb
- name: bdrdb
options:
host: two
port: 6543