HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上,HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy具备媲美商用负载均衡器的性能和稳定性。
HAproxy的特性:采用单线程、事件驱动、非阻塞模型,大量精细的性能优化。
适用于高并发的场合
配置过程如下:
一台haproxy,两台web,一台客户机
Haproxy:192.168.112.160
Web1:192.168.112.161
Web2:192.168.112.162
客户机:192.168.112.163
3.编译安装HAproxy
wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz
tar xf haproxy-1.7.2.tar.gz
cd haproxy-1.7.2/
make PREFIX=/usr/local/haproxy TARGET=linux2628
make install PREFIX=/usr/local/haproxy
4.建立配置文件
步骤:cd /usr/local/haproxy/sbin
Cd ~
Mkdir /etc/haproxy
Cd -
Cd ~/haproxy-1.7.2
Ls查看一下 cd到examples
Ls查看一下是否有init.haproxy文件,vim进入文件
此字段就是配置文件路径
Vim /etc/haproxy/haproxy.cfg
写入:
global #全局属性
daemon #以daemon方式在后台运行
maxconn 256 #最大同时256连接
pidfile /home/ha/haproxy/conf/haproxy.pid #指定保存HAProxy进程号的文件
defaults #默认参数
mode http #http模式
timeout connect 5000ms #连接server端超时5s
timeout client 50000ms #客户端响应超时50s
timeout server 50000ms #server端响应超时50s
frontend http-in #前端服务http-in
bind *:8080 #监听8080端口
default_backend servers #请求转发至名为"servers"的后端服务
backend servers #后端服务servers
server server1 192.168.112.161:8000 maxconn 32 #backend servers中有一个后端服务,名字叫server1,起在本机的8000端口,HAProxy同时最多向这个服务发起32个连接,此实验中我们使用两个web服务器,则需要两个此字段
server server2 192.168.112.162:8000 maxconn 32
5.优化——建立启动配置文件
cp /root/haproxy-1.7.2/examples/haproxy.init /etc/init.d/haproxyd
Vim /etc/init.d/haproxy
修改: 35行 内容为
BIN=/usr/local/haproxy/sbin/$BASENAME
给予脚本权限:
chmod +x /etc/init.d/haproxyd
chkconfig --add /etc/init.d/haproxy
6.设置haproxy开机自启
systemctl daemon-reload
systemctl enable haproxy
chkconfig --level 35 haproxy on
Chkconfig --list
启动:/etc/init.d/haproxy start
查看一下是否开启:systemctl status haproxy
#重启之后如果显示第26行期待表达式,可查看一下26行的变量是否有定义,若没有,无必要时可#注释掉
7.web服务器
安装httpd
Yum -y install httpd
启动httpd:systemctl start httpd
Web1:echo web1 > /var/www/html/index.html
Web2:echo web2 > /var/www/html/index.html
#用于轮询测试
8.客户机测试
Curl HaproxyIP,看是否可以轮询web1和web2
9.七层负载状态检查
Vim /etc/haproxy/haproxy.cfg
在文件最后添加:
listen stats #定义监控页面
bind *:1080 #绑定端口1080
stats refresh 30s #每30秒更新监控数据
stats uri /stats #访问监控页面的uri(可按需更改,更改后访问监控页面时后缀也要更改为同样的)
stats realm HAProxy\ Stats #监控页面的认证提示
stats auth admin:admin #监控页面的用户名和密码(需要修改)
重新启动 systemctl restart haproxy
访问监控页面:192.168.112.160:080/stats
10.配置syslog日志
Syslog日志是一个系统记录工具,它在服务器、网络设备和其他支持它的系统上提供了一种标准的方式来收集和记录事件信息。Syslog具有以下几个关键作用:监控和诊断,安全审计,合规性要求,性能优化,趋势分析,自动化报警,跨设备管理
touch /etc/rsyslog.d/haproxy.conf
Vim /etc/rsyslog.d/haproxy.conf
在文件添加:
$ModLoad imudp
$UDPServerRun 514
$FileCreateMode 0644 #日志文件的权限
$FileOwner root #日志文件的owner
local0.* /var/log/haproxy.log #local0接口对应的日志输出文件
local1.* /var/log/haproxy_warn.log #local1接口对应的日志输出文件
重启systemctl restart rsyslog
Cd /var/log