@biorate/haproxy
TypeScript icon, indicating that this package has built-in type declarations

1.65.4 • Public • Published

Haproxy

Haproxy connector

Examples:

import { inject, container, Types, Core } from '@biorate/inversion';
import { IConfig, Config } from '@biorate/config';
import { HaproxyConnector, HaproxyConfig } from '@biorate/haproxy';

class Root extends Core() {
  @inject(HaproxyConnector) public connector: HaproxyConnector;
}

container.bind<IConfig>(Types.Config).to(Config).inSingletonScope();
container.bind<HaproxyConnector>(HaproxyConnector).toSelf().inSingletonScope();
container.bind<Root>(Root).toSelf().inSingletonScope();

container.get<IConfig>(Types.Config).merge({
  Haproxy: [
    {
      name: 'connection',
      debug: false,
      readiness: {
        nodes: ['postgresql1', 'postgresql2', 'postgresql3'],
        retries: 10,
        delay: 1000,
      },
      config: {
        global: [
          'maxconn 100',
          'stats socket {{stat_socket_path}} mode 660 level admin expose-fd listeners',
          'stats timeout 5s',
        ],
        defaults: [
          'log global',
          'retries 2',
          'timeout client 30m',
          'timeout connect 4s',
          'timeout server 30m',
          'timeout check 5s',
        ],
        'listen stats': ['mode http', 'bind *:7001', 'stats enable', 'stats uri /'],
        'listen postgres': [
          'mode tcp',
          'bind *:7000',
          'option httpchk',
          'http-check expect status 200',
          'default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions',
          'server postgresql1 127.0.0.1:5433 maxconn 100 check port 8008',
          'server postgresql2 127.0.0.1:5434 maxconn 100 check port 8008',
          'server postgresql3 127.0.0.1:5435 maxconn 100 check port 8008',
        ],
      },
    },
  ],
});

(async () => {
  const root = <Root>container.get<Root>(Root);
  await root.$run();
})();

Learn

  • Documentation can be found here - docs.

Release History

See the CHANGELOG

License

MIT

Copyright (c) 2021-present Leonid Levkin (llevkin)

Readme

Keywords

Package Sidebar

Install

npm i @biorate/haproxy

Weekly Downloads

6

Version

1.65.4

License

MIT

Unpacked Size

73.1 kB

Total Files

23

Last publish

Collaborators

  • llevkin