Crossroads Load Balancer 1.19 review

by on

Crossroads is a load balance and failover utility for TCP-based services. Crossroads Load Balancer is a daemon program running in

License: GPL (GNU General Public License)
File size: 0K
Developer: Karel Kubat
0 stars award from

Crossroads is a load balance and failover utility for TCP-based services.

Crossroads Load Balancer is a daemon program running in userspace and features extensive configurability, polling of backends using "wakeup calls", detailed status reporting, "hooks" for special actions when backend calls fail, and more.

It is service-independent; it is usable for HTTP(S), SSH, SMTP, DNS, etc.

Crossroads is a daemon that basically accepts TCP connections at preconfigured ports, and given a list of 'back ends' distributes each incoming connection, so that a client process is served.

Additionally, crossroads maintains an internal administration of the back end connectivity: if a back end isn't usable, then the client request is handled using another back end. Crossroads will then periodically check whether a previously not usable back end has come to life yet. Also, crossroads can select back ends by estimating the load, so that balancing is achieved.

Using this approach, crossroads serves as load balancer and fail over utility. Crossroads will very likely not be as reliable as hardware based balancers, since it always will require a server to run on. This server, in turn, may become a new Single Point of Failure (SPOS). However, in situations where cost efficiency is an issue, crossroads may be a good choice.

Furthermore, crossroads can be deployed in situations where a hardware based balancing already exists and augmenting service reliability is needed. Or, crossroads may be run off a diskless system, which again improves reliability of the underlying hardware.

This document describes how to use crossroads, how to configure it in order to increase the reliability of your systems, and how to compile the program from its sources. This document is also available in PDF format.


Crossroads is started from the commandline, and highly depends on /etc/crossroads.conf (the default configuration file). It supports a number of flags (e.g., to overrule the location of the configuration file). The actual usage information is always obtained by typing crossroads without any arguments. Crossroads then displays the allowed arguments.

This section shows the basic usage.

crossroads start and crossroads stop are typical actions that are run from system startup scripts. The meaning is self-explanatory.
crossroad status reports on each running service. Per service, the state of each back end is reported.
crossroads tell service backend state is a command line way of telling crossroads that a given back end, of a given service, is in a given state. Normally crossroads maintains state information itself, but by using crossroads tell, a back end can be e.g. taken 'off line' for servicing.
crossroads services reports on the configured services. In contrast to crossroads status, this option only shows what's configured -- not what's up and running. Therefore, crossroads services doesn't report on back end states.
crossroads sampleconf shows a sample configuration on screen. A good way of quicky viewing the configuration file syntax, or of getting a start for your own configuration /etc/crossroads.conf.

What's New in This Release:
This is the next development version of Crossroads.
There are some small changes, such as a bugfix in connection counting and better support for Connection-Type specifiers in HTTP.
Crossroads now supports "allow" and "deny" lists, similar to the feature in Apache, to block access to Crossroads to specific IP addresses or networks.
Such lists can be refreshed and reloaded in a running Crossroads instance without causing service interruptions.

Crossroads Load Balancer 1.19 search tags