Configuring haproxy

TPA will install and configure haproxy on instances whose role contains haproxy .

By default, haproxy listens on 127.0.0.1:5432 for requests forwarded by Configuring pgbouncer running on the same instance. You must specify a list of haproxy_backend_servers to forward requests to.

TPA will install the latest available version of haproxy by default. You can install a specific version instead by setting haproxy_package_version: 1.9.15* (for example).

Note: see limitations of using wildcards in package_version in

tpaexec-configure .

You can set the following variables on any haproxy instance.

Variable

Default value

Description

haproxy_bind_address

127.0.0.1

The address haproxy should bind to

haproxy_port

5432

The TCP port haproxy should listen on

haproxy_backend_servers

None

A list of Postgres instance names

haproxy_maxconn

`max_connections`×0.9

The maximum number of connections allowed per backend server; the default is derived from the backend’s max_connections setting

Server options

TPA will generate /etc/haproxy/haproxy.cfg with a backend that has a default-server line and one line per backend server. All but the first one will be marked as “backup” servers.

Set haproxy_default_server_extra_options to a list of options on the haproxy instance to add options to the default-server line; and set haproxy_server_options to a list of options on the backend server to add options (which will override the defaults) to the individual server lines for each backend.

Example

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