CrushBalance
#
CrushBalance is a software load balancer that can handle and distribute a high volume of traffic.A key design aspect in CrushBalance is to use what is called 'New IO" where every connection does not require a new thread to be processed. Using threads has its benefits, especially for debugging scenarios, but it can't scale as well to handle load. CrushBalance uses this newer thread model for handling connections and routing them where they need to go.
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#
From a DOS prompt or Linux shell, type:java -jar CrushBalance.jar -dNow you can point your web browser at: https://127.0.0.1:8090/
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.
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.
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 installTo 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.
Add new attachment
Only authorized users are allowed to upload new attachments.
List of attachments
Kind | Attachment Name | Size | Version | Date Modified | Author | Change note |
---|---|---|---|---|---|---|
png |
admin_password.png | 38.3 kB | 1 | 05-Dec-2023 05:32 | Ben Spink | |
png |
configure.png | 22.6 kB | 4 | 27-Sep-2024 05:18 | Ben Spink | |
png |
crushbalance.png | 170.4 kB | 1 | 05-Dec-2023 05:32 | Ben Spink | |
png |
endpoints.png | 54.4 kB | 2 | 27-Sep-2024 05:20 | Ben Spink | |
png |
ip_list.png | 84.7 kB | 1 | 05-Dec-2023 05:32 | Ben Spink | |
png |
map.png | 60.8 kB | 1 | 05-Dec-2023 05:32 | Ben Spink | |
png |
settings.png | 82.6 kB | 1 | 05-Dec-2023 05:32 | Ben Spink | |
png |
ssl_options.png | 35.5 kB | 1 | 05-Dec-2023 05:32 | Ben Spink |
«
This particular version was published on 05-Dec-2023 05:32 by Ben Spink.
G’day (anonymous guest)
Log in
JSPWiki