BalanceNG is a modern, IPv6 capable software IP load balancing solution. It is small, fast, and easy to use and set up. It offers session persistence, different distribution methods (Round Robin, Random, Weighted Random, Least Session, Least Bandwidth, Hash, Agent, and Randomized Agent) and a customizable UDP health check agent in source code. It supports VRRP to set up high availability configurations on multiple nodes. It supports SNMP, integrating the BALANCENG-MIB with Net-SNMPD. It implements a very fast in-memory IP-to-location database, allowing powerful location-based server load-balancing.
Surrogate is an HTTP proxy functioning in both forward and reverse proxy modes. It is written in Erlang OTP and uses stream filters for inspecting and modifying data as it passes through the proxy. Additional stream filters can be implemented by writing modules that implement the filter_stream behavior. Reverse proxy features include load balancing. Additional balancer methods can be specified by implementing modules with the gen_balancer behavior. Forward proxy features include gzip compression to end servers, CONNECT support, and an HTTP proxy with authentication that can use MySQL or Mnesia backends. There is also a SOCKS 4/5 proxy listener.