HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件,是一款具 备高并发(一万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支 持正则表达式及web状态统计。
目录
1、关闭Nginx服务
root@node2 \~# systemctl stop nginx
root@node2 \~# systemctl status nginx
2、下载tar包并解压
root@node2 download# wget -c https://www.haproxy.org/download/2.8/src/haproxy-2.8.1.tar.gz
root@node2 download# tar xf haproxy-2.8.1.tar.gz -C /usr/local/
查看INSTALL文档,安装步骤
3、安装基础命令及编译依赖环境
root@node2 \~#yum install gcc readline-devel
root@node2 \~# wget http://www.lua.org/ftp/lua-5.4.4.tar.gz
root@node2 \~# tar xf lua-5.4.4.tar.gz -C /usr/local/ #解压
root@node2 \~# cd /usr/local/lua-5.4.4
root@node2 lua-5.4.4# make linux test #编译安装
#查看编译安装的版本
root@node2 lua-5.4.4# src/lua -v
Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio
4、编译安装HAProxy
root@node2 lua-5.4.4# yum -y install gcc openssl-devel pcre-devel systemd-devel zlib-devel #下载依赖
root@node2 lua-5.4.4# cd ../haproxy-2.8.1/
root@node2 haproxy-2.8.1# cat INSTALL
#参考INSTALL文件进行编译安装
root@node2 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/lua-5.4.4/src/ LUA_LIB=/usr/local/lua-5.4.4/src/
root@node2 haproxy-2.8.1# make install PREFIX=/apps/haproxy
root@node2 haproxy-2.8.1# ln -sv /apps/haproxy/sbin/haproxy /usr/sbin/
'/usr/sbin/haproxy' -> '/apps/haproxy/sbin/haproxy'
root@node2 haproxy-2.8.1# tree -d -L 1 /apps/haproxy/ #查看生成的文件
/apps/haproxy/
├── doc
├── sbin
└── share
5、验证HAProxy版本
root@node2 haproxy-2.8.1# which haproxy
/usr/sbin/haproxy
root@node2 haproxy-2.8.1# haproxy -v
HAProxy version 2.8.1-a90123a 2023/07/03 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2028.
Known bugs: http://www.haproxy.org/bugs/bugs-2.8.1.html
Running on: Linux 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
6、配置HAProxy启动脚本
root@node2 haproxy-2.8.1# cat /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
#启动服务
root@node2 haproxy-2.8.1# systemctl daemon-reload
root@node2 haproxy-2.8.1# systemctl start haproxy.service
Job for haproxy.service failed because the control process exited with error code. See "systemctl status haproxy.service" and "journalctl -xe" for details.
!!启动失败,因为默认缺少配置文件,无法启动
#创建自定义的配置文件
root@node2 haproxy-2.8.1# mkdir /etc/haproxy
root@node2 haproxy-2.8.1# cat /etc/haproxy/haproxy.cfg
7、启动haproxy
root@node2 haproxy-2.8.1# systemctl restart haproxy
如果启动失败的案例:
第一种:

解决:查看80端口是否占用,占用就停止

再重启haproxy服务
第二种


解决: 提示没有软链接,就创建软链接

再次重启haproxy服务
8、查看haproxy的状态页面





