前提:haproxy支持基于lua实现功能扩展(需要安装比较新的lua语言,方便进行haproxy编译)。
wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
lua -v # 检查环境
yum list lua # 查看可以安装环境
同时还需要gcc,gcc-c++,make环境。
yum install gcc gcc-c++ make -y
安装基本haproxy环境
安装版本为:haproxy-2.8.1.tar.gz
源码包下载地址:
http://www.haproxy.org/download/
1、解压haproxy包并且指定目录。
tar xf haproxy-2.8.1.tar.gz -C /usr/local/src/
cd /usr/local/src/haproxy-2.8.1/ # 切换到该目录之后,可以查看各个安装包与依赖的版本。
2、安装readline-devel
yum install readline-devel
3、检查还需要安装的依赖和包,编译安装
make linux test
cd ../haproxy-2.8.1
make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 LUA_INC=/usr/local/src/lua-5.4.4/src/ LUA_LIB=/usr/local/src/lua-5.4.4/src/ # 检查,直到不报错,所有依赖安装结束。
yum install zlib-devel
yum install pcre-devel
yum install openssl-devel
yum install systemd-devel
make install PREFIX=/usr/local/haproxy # 安装到指定目录
ln -sv /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy # 做软链接
4、验证版本
haproxy -v
5、写启动脚本
vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
5、报错情况(如果出现文件目录不存在的情况)
如果出现报错,执行如下操作。
mkdir -p /var/lib/haproxy
mkdir /etc/haproxy
cd examples/
cp quick-test.cfg /etc/haproxy/haproxy.cfg
6、测试重启。
systemctl daemon-reload
systemctl start haproxy