External contributions to HA-proxy
Here are some contributions that some kind users have sent me and are currently using but which are not (yet) included in mainline.
- FreeBSD port (Clément Laforet)
Clément Laforet maintains an up to date port of haproxy for FreeBSD. If you want
more information about this port, please consult Clément's work here :
- patch to apply different weights to different servers (Sébastien Brize)
This patch adds the 'weight' option to a server to provide smoother
balancing between fast and slow servers. This patch is against 1.1.27
and available here because there may be other people looking for this
I did not include this change because it has a side effect that with
fairly unequal weights, some servers might receive lots of consecutive
requests. I already have some working code to provide a smooth and
fair balancing in 1.2 and which will also work with hash-type load
get it here : patch-haproxy-1.1.27-weight
Usage: specify "weight X" on a server line.
(Note: configurations written with this patch applied will normally still work with future 1.2 versions)
- patch to implement soft-stop (Alexander Lazic)
This patch provides two features, one of which will soon be merged. It
allows one to write a file enumerating servers which will have to be
stopped, and then sending a signal to the running proxy to tell it to
read the file and stop using these servers. The second part of the patch
allows a backup server to share the same cookie as a primary server. This
should have been done from the start, so it will be merged soon.
The first part of the patch will not go this way into mainline, because
it has indirect implications on security, since the running process will
have to access a file on the file-system, while current version can run
in a chrooted, empty, read-only directory. Since future versions will be
hot-reconfigurable anyway, this feature will not be needed anymore.
However, I understand that some people might need this feature. The patch
provided here is against haproxy-1.1.28, but should also apply to more
get it here : haproxy_comafile+multi-cookie.diff
Usage: Alex says that you just have to write the server names that
you want to stop in the file, then kill -USR2 the running process. I have
not tested it though.
- patch to support IPv6 on the client-side (Willy Tarreau)
This feature was originally proposed as a patch against 1.1.27, and has
now been included in 1.2. However, for people who don't want to install
1.2 in production, there still is the possibility to patch their production
get it here : haproxy-1.1.27-ipv6.diff
Usage: check haproxy 1.2 documentation.
- other yet undocumented patches
Here you can find miscellaneous patches, most of which will make their way
into the next release, thus why I don't want to loose my time documenting
get them here : patches/