Appendix A. Installing HAProxy

HAProxy is a reverse proxy, useful for intercepting requests before they’re delivered to application code. It’s used in this book to offload some tasks that otherwise shouldn’t be handled by a Node.js process.

If you use Linux, you have a few options. The first option is to try to use your distro’s software installer to install haproxy directly. This might be as easy as sudo apt install haproxy. However, this may install a version of HAProxy that is too old. If the version of HAProxy that your distro provides is older than v2, which you can check by running haproxy -v after install, then you’ll need to install it another way.

Linux: Build from Source

This first method will download the official source code package from the http://haproxy.org website. Then, extract the contents, compile the application, and perform an install. This approach will also install the man pages, which will provide useful documentation. Run these commands to download and compile HAProxy:

$ sudo apt install libssl-dev # Debian / Ubuntu
$ curl -O http://www.haproxy.org/download/2.1/src/haproxy-2.1.8.tar.gz
$ tar -xf haproxy-2.1.8.tar.gz
$ cd haproxy-2.1.8
$ make -j4 TARGET=linux-glibc USE_ZLIB=yes USE_OPENSSL=yes
$ sudo make install

If you get errors during compilation, then you may need to use your distro’s package manager to install missing packages.

Linux: Install Precompiled Binary

However, if you’d prefer to avoid the process of compiling software, you may instead choose to download a precompiled binary. I wasn’t able to track down an official one, so here’s a version that I’ve compiled locally and uploaded to my web server. Run the following commands to download, extract, and install the precompiled binary:

$ curl -O https://thomashunter.name/pkg/haproxy-2.1.8-linux.tar.gz
$ tar -xf haproxy-2.1.8-linux.tar.gz
$ ./haproxy -v # test
$ sudo mv ./haproxy /usr/bin/haproxy
$ sudo chown root:root /usr/bin/haproxy

macOS: Install via Homebrew

If you use macOS, I highly recommend installing Homebrew if you haven’t already. Homebrew usually has recent versions of software available and will contain a modern version of HAProxy. With Homebrew, you can install HAProxy by running the following command:

$ brew install haproxy@2.1.8
$ haproxy -v # test