一、源码编译安装haproxy 2.x,配置服务启动脚本
- 下载Haproxy源码包:
wget -c https://repo.huaweicloud.com/haproxy/2.4/src/haproxy-2.4.8.tar.gz
- 下载源码编译工具:
yum install -y gcc gcc-c++ make
-
下载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/lua
lua -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
-
为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.cfg
global ##全局配置
maxconn 10000
stats socket /var/run/haproxy.stat mode 600 level admin
log 127.0.0.1 local2 info
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
default-server inter 1000 weight 3
listen app1 ##此部分是前端部分和后端部分的结合
bind :80 ##监听的端口
log global
server web1 172.25.10.120:80 check ##后端的真实服务器地址
server web2 172.25.10.130:80 check ##后端的真实服务器地址
listen stats #配置监听页面
mode http
bind :9999 ##使用9999端口
stats enable
log global
stats uri /haproxy-status
stats auth haadmin:123456 ##指定登录监听页面的用户是haadmin,密码是123456
- 创建用户和组:
useradd -r -s /sbin/nologin -d /usr/local/haproxy/ haproxy
- 启动haproxy服务:
systemctl start haproxy.service
- 在后端两台真实服务器上创建web页面,并开启apache服务:
记得关闭防火墙
RS1:echo "`hostname -I`,web test page" > /var/www/html/index.html
RS2: echo "`hostname -I`,web test page" > /var/www/html/index.html
systemctl start httpd
16. 测试haproxy是否实验负载均衡:
17. 查看haproxy的状态页面
http://172.25.10.110:9999/haproxy-status