一、第一台linux虚拟机(IP:192.168.157.10)
1、网络源下载haproxy压缩包
wget -c https://repo.huaweicloud.com/haproxy/2.4/src/haproxy-2.4.8.tar.gz
2、 网络源下载lua
curl -R -O https://www.lua.org/ftp/lua-5.4.3.tar.gz
3、 安装gcc gcc-c++ make
yum install gcc gcc-c++ make -y
4、解压lua
tar xf lua-5.4.3.tar.gz -C /usr/local/src/
cd /usr/local/src/lua-5.4.3/
5、make all test并将 lua 复制到/usr/bin/lua
[root@localhost lua-5.4.3]# make all test
[root@localhost lua-5.4.3]# cp src/lua /usr/bin/lua
#查看lua版本
[root@localhost lua-5.4.3]# src/lua -v
6、解压haproxy
tar xf haproxy-2.4.8.tar.gz -C /usr/local/src/
7、编译安装
yum -y install gcc openssl-devel pcre-devel systemd-devel
cd /usr/local/src/haproxy-2.4.8
[root@localhost haproxy-2.4.8]# 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.3/src/ LUA_LIB=/usr/local/src/lua-5.4.3/src/
[root@localhost haproxy-2.4.8]# make install PREFIX=/usr/local/haproxy
tree /usr/local/haproxy/
8、 软链接
[root@localhost sbin]# ln -sv /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy
#查看haproxy版本
[root@localhost sbin]# haproxy -v
9、编写脚本
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 /usr/local/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
#如果修改了脚本需要 systemctl daemon-reload
10、创建目录,编写配置文件。
[root@localhost ~]# mkdir /etc/haproxy
[root@localhost ~]# cd /etc/haproxy
vim haproxy.cfg
global
maxconn 10000
stats socket /var/run/haproxy.stat mode 600 level admin
log 127.0.0.1 local0
# uid 200
# gid 200
user haproxy
group haproxy
chroot /usr/local/haproxy
daemon
defaults
mode http
option httplog
log global
timeout client 1m
timeout server 1m
timeout connect 10s
timeout http-keep-alive 2m
timeout queue 15s
timeout tunnel 4h # for websocket
listen app1
# this is the address and port we'll listen to, the ones to aim the
# load generators at
bind :80
# create a certificate and uncomment this for SSL
# bind :8443 ssl crt my-cert.pem alpn h2,http/1.1
# Put the server's IP address and port below
server web1 192.168.157.200:80
server web2 192.168.157.201:80
11、创建用户haproxy设置为nologin
useradd -r -s /sbin/nologin -d /usr/local/haproxy/ haproxy
12、启动haproxy
systemctl start haproxy
二、第二台和第三台linux虚拟机配置
1、安装httpd
yum install httpd -y
第二台
echo "web1:192.168.157.200" > /var/www/html/index.html
第三台
echo "web2:192.168.157.201" > /var/www/html/index.html
2、开启httpd、关掉防火墙、禁用selinux
systemctl start httpd
systemctl stop firewalld
setenforce 0