DragonFly On-Line Manual Pages
MOREBALANCE(5) MoreBalance Handbook MOREBALANCE(5)
NAME
morebalance.conf - configuration file for the morebalance load
balancing tool
DESCRIPTION
Several tasks can be accomplished with morebalance. It is important to
understand these and to use only methods which are required, which
makes the tool both faster and more secure.
Port forwarding
The general syntax for a simple port forwarding is:
<service> use <host>
The service, which can either be a port number or the
appropriate alias from /etc/services or an absolute path to a
unix socket, is then made available from the given host.
It is very convenient to let the original port differ from the
provided one, for example to allow access as user to ports which
require root privileges. A different original port can thus be
specified with:
<service> use <host> as <service>
Port options are recognized when the service is specified as
<port:modifier>. Several modifiers can be chained together.
Valid modifiers are:
<port>:local (Listen to local interface only)
<port>:tcp (Forward only TCP connections (default))
<port>:udp (Forward UDP data)
<port>:tls (Encrypt data before forwarding)
<port>:compress (Compress data during the transmission)
The :local modifier is supported for incoming connections only.
Unix domain sockets do obviously not work on remote hosts.
MoreBalance will give warnings if it finds incorrect
combinations.
Load balancing
A load balancer distributes network traffic to several backend
hosts. This is configured by passing a list of hosts instead of
only one of them:
<service> use <host1> and <host2> and <host3>
Pattern matching
Running multiple services on one port is supported by requiring
connection patterns, which can be used for protocols with
client-to-server initiations. The pattern must be a POSIX
regular expression, unless PCRE is enabled, so that perl-
compatible regular expressions can be used.
<service> use <host> as <service> when matching <"pattern">
Autostart
If a port forwarding requires a local daemon to be run, this can
be requested on demand, which is handy if launching the daemon
beforehand is not possible due to missing network connectivity
or other problems.
<service> use <host> launching <program>
Quality of service
Sometimes it is necessary to guarantee for certain connections
to get special priorities or the like.
guarantee <service1> after | before <service2>
guarantee <service1> after <service2> for <seconds> seconds
An example usage would be a pop-before-smtp implementation for
mail servers.
Various options
In order to let morebalance report all connections, the
verbosity level can be toggled:
be verbose
be very verbose
EXAMPLE CONFIGURATION FILE
# This is a sample morebalance configuration.
# Distribute all incoming HTTP requests to our web server farm
http use web01 and web02 and web03 and web04 and web05
# Mail goes to our mail cluster
smtp and imap use mail-one and mail-two
# Some people do pop-before-smtp
guarantee smtp after pop for 600 seconds
# Forward PostgreSQL connections on port 10001
10001 use sqlserv as postgres when matching
"\[0x00\]\[0x00\]\[0x01\]\[0x28\]\[0x04\]\[0xd2\]\[0x16\]\[0x2f\]"
SEE ALSO
morebalance(1)
AUTHOR
Josef Spillner <josef@coolprojects.org>
MoreBalance 08.04.2006 MOREBALANCE(5)