3.6. How to get HAProxy
- HAProxy is an open source project covered by the GPLv2 license, meaning that
- everyone is allowed to redistribute it provided that access to the sources is
- also provided upon request, especially if any modifications were made.
-
- HAProxy evolves as a main development branch called "master" or "mainline", from
- which new branches are derived once the code is considered stable. A lot of web
- sites run some development branches in production on a voluntarily basis, either
- to participate to the project or because they need a bleeding edge feature, and
- their feedback is highly valuable to fix bugs and judge the overall quality and
- stability of the version being developed.
-
- The new branches that are created when the code is stable enough constitute a
- stable version and are generally maintained for several years, so that there is
- no emergency to migrate to a newer branch even when you're not on the latest.
- Once a stable branch is issued, it may only receive bug fixes, and very rarely
- minor feature updates when that makes users' life easier. All fixes that go into
- a stable branch necessarily come from the master branch. This guarantees that no
- fix will be lost after an upgrade. For this reason, if you fix a bug, please
- make the patch against the master branch, not the stable branch. You may even
- discover it was already fixed. This process also ensures that regressions in a
- stable branch are extremely rare, so there is never any excuse for not upgrading
- to the latest version in your current branch.
-
- Branches are numbered with two digits delimited with a dot, such as "1.6". A
- complete version includes one or two sub-version numbers indicating the level of
- fix. For example, version 1.5.14 is the 14th fix release in branch 1.5 after
- version 1.5.0 was issued. It contains 126 fixes for individual bugs, 24 updates
- on the documentation, and 75 other backported patches, most of which were needed
- to fix the aforementioned 126 bugs. An existing feature may never be modified
- nor removed in a stable branch, in order to guarantee that upgrades within the
- same branch will always be harmless.
-
- HAProxy is available from multiple sources, at different release rhythms :
-
- - The official community web site : http://www.haproxy.org/ : this site
- provides the sources of the latest development release, all stable releases,
- as well as nightly snapshots for each branch. The release cycle is not fast,
- several months between stable releases, or between development snapshots.
- Very old versions are still supported there. Everything is provided as
- sources only, so whatever comes from there needs to be rebuilt and/or
- repackaged;
-
- - A number of operating systems such as Linux distributions and BSD ports.
- These systems generally provide long-term maintained versions which do not
- always contain all the fixes from the official ones, but which at least
- contain the critical fixes. It often is a good option for most users who do
- not seek advanced configurations and just want to keep updates easy;
-
- - Commercial versions from http://www.haproxy.com/ : these are supported
- professional packages built for various operating systems or provided as
- appliances, based on the latest stable versions and including a number of
- features backported from the next release for which there is a strong
- demand. It is the best option for users seeking the latest features with
- the reliability of a stable branch, the fastest response time to fix bugs,
- or simply support contracts on top of an open source product;
-
-
- In order to ensure that the version you're using is the latest one in your
- branch, you need to proceed this way :
-
- - verify which HAProxy executable you're running : some systems ship it by
- default and administrators install their versions somewhere else on the
- system, so it is important to verify in the startup scripts which one is
- used;
-
- - determine which source your HAProxy version comes from. For this, it's
- generally sufficient to type "haproxy -v". A development version will
- appear like this, with the "dev" word after the branch number :
-
- HA-Proxy version 1.6-dev3-385ecc-68 2015/08/18
-
- A stable version will appear like this, as well as unmodified stable
- versions provided by operating system vendors :
-
- HA-Proxy version 1.5.14 2015/07/02
-
- And a nightly snapshot of a stable version will appear like this with an
- hexadecimal sequence after the version, and with the date of the snapshot
- instead of the date of the release :
-
- HA-Proxy version 1.5.14-e4766ba 2015/07/29
-
- Any other format may indicate a system-specific package with its own
- patch set. For example HAProxy Enterprise versions will appear with the
- following format (<branch>-<latest commit>-<revision>) :
-
- HA-Proxy version 1.5.0-994126-357 2015/07/02
-
- - for system-specific packages, you have to check with your vendor's package
- repository or update system to ensure that your system is still supported,
- and that fixes are still provided for your branch. For community versions
- coming from haproxy.org, just visit the site, verify the status of your
- branch and compare the latest version with yours to see if you're on the
- latest one. If not you can upgrade. If your branch is not maintained
- anymore, you're definitely very late and will have to consider an upgrade
- to a more recent branch (carefully read the README when doing so).
-
- HAProxy will have to be updated according to the source it came from. Usually it
- follows the system vendor's way of upgrading a package. If it was taken from
- sources, please read the README file in the sources directory after extracting
- the sources and follow the instructions for your operating system.