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的状态页面

