!!CrushBalance\\
CrushBalance is a software load balancer that can handle and distribute a high volume of traffic.  Its part of all Enterprise licenses.\\
Download here: [https://www.crushftp.com/early9/CrushBalance.zip]\\
\\
[attachments|crushbalance.png]\\
\\
!!Features
* Allow sticking sessions based on source IP or simple round robin.\\
* Configurable ping interval per endpoint destination to check if its online (no more overloading your server and filling up your logs with just load balancer pings)\\
* Visual representation of where clients are connecting from by using MaxMind's city DB. [http://www.maxmind.com] [http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz]\\
* Proxy protocol v1 support to tell the backend server your real IP (CrushFTP supports this).\\
* Automatic rate limiting for connections from a single IP to protect your servers behind the load balancer.\\
* SSL offloading to the load balancer.\\
* Ability to check incoming headers to decide what end point to route them to (HOST: header for example).  In addition this allows you to also decide to send people to the closest endpoint for their source IP via a HTTP redirect.  You can run a load balancer at one location to redirect people geographically to the closest end point.\\
* Installs as a daemon on Linux, or service on windows.\\
* Including in all CrushFTP 9 enterprise licenses.\\
* Simple and lightweight...7MB download, uses Java.  Download and run.\\
\\
\\
!!Running / Launching CrushBalance [https://127.0.0.1:8090/]
From a DOS prompt or Linux shell, type:
{{{
java -jar CrushBalance.jar -d
}}}
Now you can point your web browser at "https://127.0.0.1:8090/" since the default port is 8090 using HTTPS.\\
\\
!!Configuring
The top Server IP is meant to be a hostname or IP of your main server.  This is used for the GeoIP lookup to learn where you are in relation to incoming connections.  You must have the "city.mmdb" in your CrushBalance folder at startup for CrushBalance to do IP lookups for positioning on the map and for using the "Nearby" feature for redirecting users to the closest endpoint.\\
The Bind IP controls what IPs on the machine CrushBalance binds to, the default is 0.0.0.0 which is all IPs. The bind port is the port to use as well.\\
IP Restrictions allows you to limit what IPs can connect to this CrushBalance port.  Usually this will be left blank.\\
[attachments|configure.png]\\
\\
!Endpoints
Multiple endpoints can be added, each a different location.  CrushBalance will distribute the load over these endpoints, passing along the proxy protocol v1 header if enabled so the receiving endpoint knows the true client's IP.\\
Currently you can set the SSL information to use on a per endpoint scenario, but this may change in future versions.\\
Waiting headers allows you to configure a redirect http header, and a RegEx pattern to match in the HTTP headers block to determine where to send the user.\\
This example is redirecting people to the close of the two domains baed on GeoIP lookup.  Domain1 or Domain2 depending on which is closest to them.\\
[attachments|endpoints.png]\\
\\
!Installing
CrushBalance uses your save CrushFTP 9 Enterprise license key for registration.  Until it is registered it will not process and route connections, although it will allow you to configure the settings.\\
\\
To install the daemon on Linux, use this command:
{{{
./crushbalance_init.sh install
}}}
To control the daemon, use this:
{{{
./crushbalance_init.sh start
./crushbalance_init.sh stop
}}}
\\
On Windows the button in the UI window preferences will install the windows service.\\
[attachments|settings.png]\\