HAProxy简介
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速且可靠的一种解决方案。支持4-7层的网络交换,即覆盖所有的TCP协议。也就是说,HAProxy甚至还支持MySQL的负载均衡。
HAProxy的安装与配置
HAProxy的安装
[root@CentOS7 ~]# tar zxvf haproxy-2.0-dev2.tar.gz
[root@CentOS7 ~]# cd haproxy-2.0-dev2/
[root@CentOS7 ~]# unmae -a 获取Linux内核版本(3.0以上版本使用linux2628参数)
[root@CentOS7 haproxy-2.0-dev2]# make -j 4TARGET=linux2628 PREFIX=/usr/local/haproxy
[root@CentOS7 haproxy-2.0-dev2]# make install PREFIX=/usr/local/haproxy
注:所有设备均关闭防火墙和SELINUX
[root@CentOS7 ~]# systemctl stop firewalld
[root@CentOS7 ~]# setenforce 0
HAProxy主配置文件
[root@CentOS7 ~]# vim /usr/local/haproxy/conf/haproxy.cfg
global
log 127.0.0.1 local2 日志配置
maxconn 4086 用于设定最大并发连接数
chroot /usr/local/haproxy 修改haproxy的工作目录
uid 99 以指定UID运行haproxy(99为nobody用户)
gid 99 同UID,不过指定的组名
daemon 以后台形式运行haproxy
nbproc 1 指定启动的haproxy进程的个数,最大不能超过
物理CPU的核心数
pidfile /usr/local/haproxy/logs/haproxy.pid pid进程文件位置
defaults
log global
log 127.0.0.1 local3 设定日志文件级别
mode http 设定实例的工作模式(有tcp/http/health三种)
retries 2 失败重连次数
option httplog 日志类别,记载http日志
option httpclose 每次请求完毕后主动关闭http通道
option dontlognull 不记录空连接产生的日志
option forwardfor 如果后端服务器需要获得客户端真实IP需要配置
的参数,可以从HTTP Header中获得客户端IP
option redispatch 当对应的服务器宕机时,强制定向到其他可用的服务器
option httpchk GET /index.html 健康检测
timeout connect 5000ms 连接超时时间
timeout client 30000ms 客户端超时时间
timeout server 30000ms 服务端超时时间
timeout check 2000 检测超时时间
balance roundrobin 定义负载均衡算法
stats uri /haproxy-stats haproxy监控页面的访问地址
frontend http 前端配置,用于定义一系列监听的套接字
bind 0.0.0.0:80 发起http请求到80端口,会被转发到设置的IP及端口
default_backend http_back 转发到后端,需写上后端名称
backend http_back 定义后端的服务器
server s1 192.168.73.156:80 weight 1 minconn 1 maxconn 3 check inter 40000
server s2 192.168.73.154:80 weight 1 minconn 1 maxconn 3 check inter 40000
启动haproxy
服务端配置
Server1:
[root@Server1 ~]# yum -y install httpd
[root@Server1 ~]# echo 192.168.73.156 >> /var/www/html/index.html
[root@Server1 ~]# systemctl start httpd
Server2:
[root@Server2 ~]# yum -y install httpd
[root@Server2 ~]# echo 192.168.73.154 >> /var/www/html/index.html
[root@Server2 ~]# systemctl start httpd
HAProxy的测试
负载均衡测试
故障切换测试
将Server1节点服务停止,此时访问将只能看到“192.168.73.154”了。如果将其重新启动,会自动加入到集群中去。