• OS: Ubuntu 18.04.2 LTS
  • HAProxy 1.9.6
  • Lua 5.3.5
  • OpenSSL 1.1.0h
#!/bin/bash

###########################################

export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

## Install dependencies package
echo "####################################################################"
echo "#                  Install dependencies package                    #"
echo "####################################################################"
sudo apt-get install -y wget build-essential zlib1g-dev libreadline-dev

## Complie lua
echo "####################################################################"
echo "#                            Complie lua                           #"
echo "####################################################################"
# sudo apt install build-essential libreadline-dev
# yum groupinstall "Development Tools" readline
cd /opt
rm -rf lua-5.3.5.tar.gz
rm -rf lua-5.3.5
wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar -xvf lua-5.3.5.tar.gz
cd lua-5.3.5
make linux
mkdir -p /usr/local/src/lua-5.3.5
make INSTALL_TOP=/usr/local/src/lua-5.3.5 install

## Complie OpenSSL
echo "####################################################################"
echo "#                            Complie OpenSSL                       #"
echo "####################################################################"
cd /opt
rm -rf openssl-1.1.0h.tar.gz
rm -rf openssl-1.1.0h
wget https://www.openssl.org/source/old/1.1.0/openssl-1.1.0h.tar.gz
tar -xvf openssl-1.1.0h.tar.gz
cd openssl-1.1.0h
./config -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)' --prefix=/usr/local/ssl --openssldir=/usr/local/ssl
make
make install

## Compile haproxy
echo "####################################################################"
echo "#                            Complie HAProxy                       #"
echo "####################################################################"
useradd haproxy -u haproxy &> /dev/null || useradd -s /usr/sbin/nologin -r haproxy
cd /opt
rm -rf haproxy-1.9.6.tar.gz
rm -rf haproxy-1.9.6
mkdir -p /usr/local/src/haproxy-1.9.6
mkdir -p /var/lib/haproxy/
wget http://www.haproxy.org/download/1.9/src/haproxy-1.9.6.tar.gz
tar -xvf haproxy-1.9.6.tar.gz
cd haproxy-1.9.6
sudo make TARGET=linux2628 \
USE_OPENSSL=1 \
USE_DL=1 \
USE_LUA=1 \
USE_THREAD=1 \
LUA_LIB=/usr/local/src/lua-5.3.5/lib \
LUA_INC=/usr/local/src/lua-5.3.5/include \
SSL_INC=/usr/local/ssl/include \
SSL_LIB=/usr/local/ssl/lib
sudo make PREFIX=/usr/local/src/haproxy-1.9.6 install

export LD_LIBRARY_PATH=/usr/local/ssl/lib/
echo "####################################################################"
echo "#                        Check Complie HAProxy                     #"
echo "####################################################################"
/usr/local/src/haproxy-1.9.6/sbin/haproxy -vv