Upgrade
Upgrade HAProxy Enterprise on Linux
Using HAProxy Fusion?
If you’re using HAProxy Fusion, then see the HAProxy Fusion - Nodes topic instead.
To upgrade to a new, major version of HAProxy Enterprise from an older version, please use the Upgrade procedure. However, if you want to install the latest patches for your current version without upgrading to a new, major version, please use the Update procedure.
Upgrade Jump to heading
You can upgrade HAProxy Enterprise on the following operating systems:
| HAProxy Enterprise version | Release date | End of life | Supported OS (architecture) |
|---|---|---|---|
| 3.3r1 | Feb 2026 | Feb 2027 |
|
The upgrade procedure installs a new major version of HAProxy Enterprise.
-
Issues with the HAProxy Enterprise configuration can cause the load balancer to fail after an upgrade. Even if the service is performing as desired before the upgrade, the upgrade could introduce changes that cause a failure afterward.
Validate the HAProxy Enterprise configuration file before proceeding with the upgrade.
Use the
hapee-lbcommand with the-coption to validate configuration files.Depending on your version, the command’s output indicates that the file is valid in these ways:
- In version 2.8 and earlier, the command indicates a valid configuration by printing
Configuration file is validin addition to setting the zero return status. - In version 2.9 and later, the command sets the zero return status for a valid configuration but doesn’t display a message. To display the message, include the
-Voption on the command line.
Multiple configuration files
If you have multiple configuration files in your application, be sure to check them all in the correct order.
Validate the configuration file as follows:
Validate the configuration filenixsudo /opt/hapee-3.3/sbin/hapee-lb -c -f /etc/hapee-3.3/hapee-lb.cfg -Vnixsudo /opt/hapee-3.3/sbin/hapee-lb -c -f /etc/hapee-3.3/hapee-lb.cfg -Vnixsudo /opt/hapee-3.2/sbin/hapee-lb -c -f /etc/hapee-3.2/hapee-lb.cfg -Vnixsudo /opt/hapee-3.2/sbin/hapee-lb -c -f /etc/hapee-3.2/hapee-lb.cfg -Vnixsudo /opt/hapee-3.0/sbin/hapee-lb -c -f /etc/hapee-3.0/hapee-lb.cfg -Vnixsudo /opt/hapee-3.0/sbin/hapee-lb -c -f /etc/hapee-3.0/hapee-lb.cfg -Vnixsudo /opt/hapee-2.8/sbin/hapee-lb -c -f /etc/hapee-2.8/hapee-lb.cfg -Vnixsudo /opt/hapee-2.8/sbin/hapee-lb -c -f /etc/hapee-2.8/hapee-lb.cfg -Vnixsudo /opt/hapee-2.6/sbin/hapee-lb -c -f /etc/hapee-2.6/hapee-lb.cfg -Vnixsudo /opt/hapee-2.6/sbin/hapee-lb -c -f /etc/hapee-2.6/hapee-lb.cfg -VAlerts and warnings that appear in the console output explain the errors encountered. An alert is a fatal condition and prohibits the service from starting. A warning indicates a condition that isn’t fatal now but may become fatal in the target release. Address all the errors until you receive the successful output:
Configuration file is valid. - In version 2.8 and earlier, the command indicates a valid configuration by printing
-
If the HAProxy Enterprise server is part of a high-availability cluster, take it out of the cluster:
- If using Active/Active clustering, update your network to stop sending traffic to the load balancer. For example, if using DNS roundrobin, remove the load balancer from DNS.
- If using Active/Standby clustering, then on the active load balancer edit
/etc/hapee-extras/hapee-vrrp.cfg. Lower thepriorityvalue to less than the standby load balancer’spriority. This will put the active load balancer into the standby state and simultaneously activate the standby load balancer. Then restart thehapee-extras-vrrporhapee-extras-vrrp22service.
-
Install HAProxy Enterprise by running the following command, specifying the desired version with
--version, and replacing<HAProxy Enterprise Key>with your HAProxy Enterprise license key.Install the softwarenixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 3.3r1 \--key <HAProxy Enterprise key>nixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 3.3r1 \--key <HAProxy Enterprise key>nixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 3.2r1 \--key <HAProxy Enterprise key>nixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 3.2r1 \--key <HAProxy Enterprise key>nixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 3.0r1 \--key <HAProxy Enterprise key>nixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 3.0r1 \--key <HAProxy Enterprise key>nixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 2.8r1 \--key <HAProxy Enterprise key>nixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 2.8r1 \--key <HAProxy Enterprise key>nixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 2.6r1 \--key <HAProxy Enterprise key>nixwget https://www.haproxy.com/static/install_haproxy_enterprise.shsudo bash ./install_haproxy_enterprise.sh \--version 2.6r1 \--key <HAProxy Enterprise key> -
Copy the configuration files from your existing instance to your new instance. In addition to the configuration files, copy any associated files such as maps, certificates, and so on. The default configuration file is located here.
Configuration file locationtext/etc/hapee-3.3/hapee-lb.cfgtext/etc/hapee-3.3/hapee-lb.cfgtext/etc/hapee-3.2/hapee-lb.cfgtext/etc/hapee-3.2/hapee-lb.cfgtext/etc/hapee-3.0/hapee-lb.cfgtext/etc/hapee-3.0/hapee-lb.cfgtext/etc/hapee-2.8/hapee-lb.cfgtext/etc/hapee-2.8/hapee-lb.cfgtext/etc/hapee-2.6/hapee-lb.cfgtext/etc/hapee-2.6/hapee-lb.cfg -
Validate your HAProxy Enterprise configuration file against the new version of HAProxy Enterprise.
Use the
hapee-lbcommand with the-coption to validate configuration files.Depending on your version, the command’s output indicates that the file is valid in these ways:
- In version 2.8 and earlier, the command indicates a valid configuration by printing
Configuration file is validin addition to setting the zero return status. - In version 2.9 and later, the command sets the zero return status for a valid configuration but doesn’t display a message. To display the message, include the
-Voption on the command line.
Multiple configuration files
If you have multiple configuration files in your application, be sure to check them all in the correct order.
Validate the configuration file as follows:
Validate the configuration filenixsudo /opt/hapee-3.3/sbin/hapee-lb -c -f /etc/hapee-3.3/hapee-lb.cfg -Vnixsudo /opt/hapee-3.3/sbin/hapee-lb -c -f /etc/hapee-3.3/hapee-lb.cfg -Vnixsudo /opt/hapee-3.2/sbin/hapee-lb -c -f /etc/hapee-3.2/hapee-lb.cfg -Vnixsudo /opt/hapee-3.2/sbin/hapee-lb -c -f /etc/hapee-3.2/hapee-lb.cfg -Vnixsudo /opt/hapee-3.0/sbin/hapee-lb -c -f /etc/hapee-3.0/hapee-lb.cfg -Vnixsudo /opt/hapee-3.0/sbin/hapee-lb -c -f /etc/hapee-3.0/hapee-lb.cfg -Vnixsudo /opt/hapee-2.8/sbin/hapee-lb -c -f /etc/hapee-2.8/hapee-lb.cfg -Vnixsudo /opt/hapee-2.8/sbin/hapee-lb -c -f /etc/hapee-2.8/hapee-lb.cfg -Vnixsudo /opt/hapee-2.6/sbin/hapee-lb -c -f /etc/hapee-2.6/hapee-lb.cfg -Vnixsudo /opt/hapee-2.6/sbin/hapee-lb -c -f /etc/hapee-2.6/hapee-lb.cfg -VAlerts and warnings that appear in the console output explain the errors encountered. An alert is a fatal condition and prohibits the service from starting. A warning indicates a condition that isn’t fatal now but may become fatal in the target release. Address all the errors until you receive the successful output:
Configuration file is valid. - In version 2.8 and earlier, the command indicates a valid configuration by printing
-
Disable the old HAProxy Enterprise service from starting with the system, and enable the new version.
Disable old servicenixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-3.3-lbnixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-3.3-lbnixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-3.2-lbnixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-3.2-lbnixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-3.0-lbnixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-3.0-lbnixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-2.8-lbnixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-2.8-lbnixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-2.6-lbnixsudo systemctl disable hapee-<PREVIOUS_VERSION>-lbsudo systemctl enable hapee-2.6-lb -
Stop the old HAProxy Enterprise service, and start the new service.
Stop old servicenixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-3.3-lbnixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-3.3-lbnixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-3.2-lbnixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-3.2-lbnixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-3.0-lbnixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-3.0-lbnixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-2.8-lbnixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-2.8-lbnixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-2.6-lbnixsudo systemctl stop hapee-<PREVIOUS_VERSION>-lbsudo systemctl start hapee-2.6-lb -
Run
tail -f /var/log/syslog(or distribution equivalent) to check for warnings or errors. -
Run
curl localhostto ensure that HAProxy Enterprise is responding. Adjust address/port as needed, and use a local address that is currently active on the box and not a VRRP IP. -
Put the upgraded server back into the cluster.
-
Repeat this procedure on secondary load balancers after restoring the current load balancer to active service.
Post-upgrade Jump to heading
Perform these steps after upgrading HAProxy Enterprise.
Upgrade modules Jump to heading
In addition to upgrading the HAProxy Enterprise package, the upgrade process upgrades many of the modules available with HAProxy Enterprise. Verify that the modules you use have been upgraded.
-
To see which modules you use, review your HAProxy Enterprise configuration file and look for modules named in the
module-loaddirective, for example:hapee-lb.cfghaproxyglobalmodule-load hapee-lb-waf.sohapee-lb.cfghaproxyglobalmodule-load hapee-lb-waf.so -
List modules installed on your node by running the following command:
nixsudo apt list --installed | grep hapeenixsudo apt list --installed | grep hapeenixsudo yum list --installed hapee-*nixsudo yum list --installed hapee-*nixsudo zypper search --installed-only hapeenixsudo zypper search --installed-only hapee -
Verify that the installed modules are up to date with the new version of HAProxy Enterprise. Upgrade any modules that are out of date. For more information, see Enterprise modules.
Optional: Uninstall old version Jump to heading
When you have confirmed that the new HAProxy Enterprise version is performing as needed, you can uninstall the old HAProxy Enterprise version if you want. To uninstall the old version:
nixsudo apt purge hapee-3.3r1-\*sudo systemctl restart rsyslog
nixsudo apt purge hapee-3.3r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-3.3r1-lb`sudo yum remove hapee-3.3r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-3.3r1-lb`sudo yum remove hapee-3.3r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-3.3r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-3.3r1-\*sudo systemctl restart rsyslog
nixsudo apt purge hapee-3.2r1-\*sudo systemctl restart rsyslog
nixsudo apt purge hapee-3.2r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-3.2r1-lb`sudo yum remove hapee-3.2r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-3.2r1-lb`sudo yum remove hapee-3.2r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-3.2r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-3.2r1-\*sudo systemctl restart rsyslog
nixsudo apt purge hapee-3.0r1-\*sudo systemctl restart rsyslog
nixsudo apt purge hapee-3.0r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-3.0r1-lb`sudo yum remove hapee-3.0r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-3.0r1-lb`sudo yum remove hapee-3.0r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-3.0r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-3.0r1-\*sudo systemctl restart rsyslog
nixsudo apt purge hapee-2.8r1-\*sudo systemctl restart rsyslog
nixsudo apt purge hapee-2.8r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-2.8r1-lb`sudo yum remove hapee-2.8r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-2.8r1-lb`sudo yum remove hapee-2.8r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-2.8r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-2.8r1-\*sudo systemctl restart rsyslog
nixsudo apt purge hapee-2.6r1-\*sudo systemctl restart rsyslog
nixsudo apt purge hapee-2.6r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-2.6r1-lb`sudo yum remove hapee-2.6r1-\*sudo systemctl restart rsyslog
nixsudo rm -i `rpm -q --configfiles hapee-2.6r1-lb`sudo yum remove hapee-2.6r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-2.6r1-\*sudo systemctl restart rsyslog
nixsudo zypper remove hapee-2.6r1-\*sudo systemctl restart rsyslog
Update Jump to heading
The update procedure installs the latest build for your current HAProxy Enterprise version in order to benefit from the latest bug fixes.
-
Optional: Save the current load balancer configuration as a backup.
Backup configurationnixsudo cp /etc/hapee-3.3/hapee-lb.cfg /etc/hapee-3.3/hapee-lb.cfg.currentnixsudo cp /etc/hapee-3.3/hapee-lb.cfg /etc/hapee-3.3/hapee-lb.cfg.currentnixsudo cp /etc/hapee-3.2/hapee-lb.cfg /etc/hapee-3.2/hapee-lb.cfg.currentnixsudo cp /etc/hapee-3.2/hapee-lb.cfg /etc/hapee-3.2/hapee-lb.cfg.currentnixsudo cp /etc/hapee-3.0/hapee-lb.cfg /etc/hapee-3.0/hapee-lb.cfg.currentnixsudo cp /etc/hapee-3.0/hapee-lb.cfg /etc/hapee-3.0/hapee-lb.cfg.currentnixsudo cp /etc/hapee-2.8/hapee-lb.cfg /etc/hapee-2.8/hapee-lb.cfg.currentnixsudo cp /etc/hapee-2.8/hapee-lb.cfg /etc/hapee-2.8/hapee-lb.cfg.currentnixsudo cp /etc/hapee-2.6/hapee-lb.cfg /etc/hapee-2.6/hapee-lb.cfg.currentnixsudo cp /etc/hapee-2.6/hapee-lb.cfg /etc/hapee-2.6/hapee-lb.cfg.current -
Optional: Simulate the package upgrade to check for potential errors:
nixsudo apt updatesudo apt upgrade --simulatenixsudo apt updatesudo apt upgrade --simulatenixsudo yum check-updatenixsudo yum check-updatenixsudo zypper update --dry-runnixsudo zypper update --dry-runSearch the output for
hapee, which will show the new package version. If there are no errors, perform the upgrade. -
Update the packages on your system. Note that a prompt may display asking whether the system can restart service automatically during the upgrade. To avoid any disruption to service, you can uncheck HAProxy Enterprise from this list and then manually execute
sudo systemctl reload hapee-<VERSION>-lb, which will not drop traffic.nixsudo apt updatesudo apt upgradenixsudo apt updatesudo apt upgradenixsudo yum updatenixsudo yum updatenixsudo zypper updatenixsudo zypper update -
Reload the HAProxy Enterprise service to start the new version.
Reload servicenixsudo systemctl reload hapee-3.3-lbnixsudo systemctl reload hapee-3.3-lbnixsudo systemctl reload hapee-3.2-lbnixsudo systemctl reload hapee-3.2-lbnixsudo systemctl reload hapee-3.0-lbnixsudo systemctl reload hapee-3.0-lbnixsudo systemctl reload hapee-2.8-lbnixsudo systemctl reload hapee-2.8-lbnixsudo systemctl reload hapee-2.6-lbnixsudo systemctl reload hapee-2.6-lb