@biorate/haproxy
Version:
Haproxy runner
79 lines (64 loc) • 2.26 kB
Markdown
# Haproxy
Haproxy connector
### Examples:
```ts
import { inject, container, Types, Core } from '@biorate/inversion';
import { IConfig, Config } from '@biorate/config';
import { HaproxyConnector, HaproxyConfig } from '@biorate/haproxy';
class Root extends Core() {
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](https://biorate.github.io/core/modules/haproxy.html).
### Release History
See the [CHANGELOG](https://github.com/biorate/core/blob/master/packages/%40biorate/haproxy/CHANGELOG.md)
### License
[MIT](https://github.com/biorate/core/blob/master/packages/%40biorate/haproxy/LICENSE)
Copyright (c) 2021-present [Leonid Levkin (llevkin)](mailto:llevkin@yandex.ru)