HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件,是一款具 备高并发(一万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支 持正则表达式及web状态统计。
目录
1、关闭Nginx服务
2、下载tar包并解压
3、安装基础命令及编译依赖环境
4、编译安装HAProxy
5、验证HAProxy版本
6、配置HAProxy启动脚本
7、启动haproxy
8、查看haproxy的状态页面
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服务