fair.conf(5)
π fair.conf(5) π
okay so bestie, welcome to fair.conf(5) β the config file for the carrousel and transponder daemons. this is a file formats manual page, and it's literally the whole personality of how your load balancer behaves. grab a strawberry π and let's get into it.
β¨ NAME β¨
fair.conf β configuration file for the carrousel and transponder daemons
πΈ DESCRIPTION πΈ
so basically this is a list of variables you can put in fair.conf, and each one comes with a type and a default value. the format is like:
Name (type, default)
and then a little description of what it does. let's go one by one, no skips, periodt.
Debug(bool,false) β runs the program in debug mode. in this mode it will not detach, it will print status updates very frequently, and it will print extra diagnostic messages tostderr. it's giving "verbose bestie". π«ΆDropPrivs(bool,true) β the program will switch to a differentuid/gidafter it's obtained its root-only resources. see also theUserIDandGroupIDvariables. β¨WorkerService(string,smtp)*β this is the service on which the worker nodes offer the service that's being balanced. typically it's the service of another daemon, e.g.Postfix. thetransponderdaemon also uses this as the datagram source service for its status updates.BalancerService(string,smtp)*β the stream service on which thecarrouseldaemon listens for incoming connections. those connections get put through to one of the worker nodes.TransponderService(string,rlp)*β thecarrouseldaemon listens on this service for status update datagrams from the transponders. see also theAllowUDPvariable. πPingInterval(time,0.1 seconds) β how often the transponder sends an update to each carrousel. so like, if two carrousels are configured and the interval is0.1 seconds, that transponder sends 20 packets every second. busy little bee fr fr. πPingTimeout(time,0.5 seconds) β after this period has elapsed without receiving any status update packets from the transponder, this host is considered dead. πIdleTimeout(time,600.0 seconds) β the connection is terminated if neither party has sent something for this many seconds. for SMTP connections this would have to be at least600.0 seconds, see RFC 2821 section 4.5.3.2. it's the "if u don't text back i'm leaving" of config options πConnectTimeout(time,1.0 seconds) β when connecting to a worker node, abort after this many seconds have elapsed and no connection is established. no waiting around, bestie.ConnectAttempts(integer,3) β when putting through a connection fails, thecarrouselwill attempt to contact other worker nodes. it will give up after this many tries. three strikes and it's out, iconic behaviour. πBenchPeriod(time,5.0 seconds) β if a connection to a worker node fails, it gets excluded from new connections for this many seconds. timeout corner. πTrailPeriod(time,60.0 seconds) β when a connection is finished, pretend it lasted this many seconds more for load calculation purposes. delulu is the solulu, mathematically speaking. β¨Hysteresis(integer,0) β add an advantage to the last used worker node so that it gets selected in preference of others. loyalty bonus πMaxCapacity(integer,100) β when sending update packets, the capacity of the worker node measured in terms of concurrent connections. this number is adjusted for the current load average before sending it to the carrousel nodes.MaxBurst(integer,65536) β ringbuffer size for load balancer nodes.MinBurst(integer,1450) β if fewer than this many bytes are available in the ring buffer, do not read anything but try to free up space first. tidying up before the party, love that for it. π§ΉLocalTCP(bool,yes) β only allow connections over the loopback interface. if this option is set to"no", connections will be accepted on any interface and on any address.AllowUDP(extended regexp,^) β only datagram status packets that match this extended regular expression are accepted. all other datagram packets are logged and silently dropped. once UDP packets are accepted from a certain source, they are never matched against this regexp again.
β οΈ real talk bestie, that last bit about AllowUDP is important β the regexp check happens once per source, not every time. so set it right the first time, iykyk.
π SEE ALSO π
okay that's the whole page, you ate that. π this manual page came from Debian GNU/Linux and it's dated 2005-01-27 β vintage but still slaying, no cap. mwah, go configure something iconic ππ¦π
π¦ where this page comes from
- debian bookworm: fair 0.5.3-2+b1
- debian trixie: fair 0.5.3-4 Β· GPL-3.0-or-later
- ubuntu jammy: fair 0.5.3-2
- ubuntu noble: fair 0.5.3-2build2
- ubuntu questing: fair 0.5.3-4
- ubuntu resolute: fair 0.5.3-4build1 Β· GPL-3.0-or-later
- ubuntu stonking: fair 0.5.3-4build1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms