一、源码编译安装haproxy 2.x,配置服务启动脚本
1. 下载Haproxy源码包:
wget -c https://repo.huaweicloud.com/haproxy/2.4/src/haproxy-2.4.8.tar.gz
2. 下载源码编译工具:
yum install -y gcc gcc-c++ make
3. 下载Haproxy依赖包lua并编译安装:
curl -R -O http://www.lua.org/ftp/lua-5.4.4.tar.gz
tar zxf lua-5.4.4.tar.gz -C /usr/local/src/
cd /usr/local/src/lua-5.4.4
make linux test
4.查看lua版本信息:
cp /usr/local/src/lua-5.4.4/src/lua /usr/bin/lualua -v
5. 解压Haproxy源码包:
tar xf haproxy-2.4.8.tar.gz -C /usr/local/src/cd /usr/local/src/haproxy-2.4.8
6. 安装编译时需要的依赖包
yum install openssl-devel pcre-devel systemd-devel -y
7. 编译安装Haproxy
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/make install PREFIX=/usr/local/haproxy
8. 查看haproxy的目录结构
tree /usr/local/haproxy/
9. 对/usr/local/haproxy/sbin/haproxy做软连接:
ln -sv /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy
10. 查看haproxy版本信息:
haproxy -v
11. 为haproxy服务配置启动脚本:
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
12. 创建haproxy服务的配置文件:
可以配置文件示例中复制,配置文件示例位置:/usr/local/src/haproxy-2.4.8/examples/
mkdir /etc/haproxy
vim /etc/haproxy/haproxy.cfgglobal ##全局配置maxconn 10000stats socket /var/run/haproxy.stat mode 600 level adminlog 127.0.0.1 local2 infouser haproxy ##指定用户group haproxy ##指定组chroot /usr/local/haproxy ##服务工作目录daemon ##开启保护进程defaults ##默认配置mode httpoption httploglog globaltimeout client 1mtimeout server 1mtimeout connect 10stimeout http-keep-alive 2mtimeout queue 15stimeout tunnel 4h # for websocketdefault-server inter 1000 weight 3listen app1 ##此部分是前端部分和后端部分的结合bind :80 ##监听的端口log globalserver web1 172.25.10.120:80 check ##后端的真实服务器地址server web2 172.25.10.130:80 check ##后端的真实服务器地址listen stats #配置监听页面mode httpbind :9999 ##使用9999端口stats enablelog globalstats uri /haproxy-statusstats auth haadmin:123456 ##指定登录监听页面的用户是haadmin,密码是123456
13. 创建用户和组:
useradd -r -s /sbin/nologin -d /usr/local/haproxy/ haproxy
14. 启动haproxy服务:
systemctl start haproxy.service
15. 在后端两台真实服务器上创建web页面,并开启apache服务:
记得关闭防火墙
RS1:echo "`hostname -I`,web test page" > /var/www/html/index.htmlRS2: echo "`hostname -I`,web test page" > /var/www/html/index.htmlsystemctl start httpd
16. 测试haproxy是否实验负载均衡:
17. 查看haproxy的状态页面
http://172.25.10.110:9999/haproxy-status