Haproxy的介绍、安装、配置
1、Haproxy简介
Haproxy是一个开源的,高性能的基于HTTP和TCP应用代理的高可用,负载均衡服务软件。它支持双机热备,高可用,负载均衡。有图形界面。
而且拥有很好的对服务器节点的健康检查功能。
单台的haproxy可以满足每天1-3千万的PV。
haproxy为代理,用户的请求和后端的服务器的回应都需要经过haproxy服务器。
2、Haproxy的常用算法
balance leastconn 最少连接数
balance roundrobin 轮循
balance static-rr 权重
balance source 相当于nginx的ip_hash
3、Haproxy的安装
centos6.6默认的源yum安装proxy的版本为1.5.4
yum 安装haproxy
yum install -y haproxy
打开内核转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
让上面配置的/etc/sysctl.conf文件生效
sysctl -p
4、Haproxy配置文件详解
Haproxy配置文件可以分为五部分:
global : 全局配置参数段,主要用来控制haproxy启动前的进程及系统相关设置。
defaults : 配置一些默认参数,如frontend,backend,listen等段末没有设置则使用default段来设置。
listen : 监听
frontend : 用来匹配接收客户所请求的域名,URL等,并针对不同的匹配,做不同的请求处理。
backend : 定义后端服务器集群,以及对后端服务器的一些权重,队列,连接数等的设置
下面为正式环境下的haproxy.cfg配置文件
cat >> /etc/haproxy/haproxy.cfg <<EOF
global
log 127.0.0.1:514 local0 error #一定不能用info,这样会造成很大的磁盘IO
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 20000 #最大连接数
user haproxy
group haproxy
spread-checks 3
nbproc 2
daemon
defaults
mode http
log global
retries 3
option redispatch
#contimeout 5000
#clitimeout 50000
#srvtimeout 50000
listen alex
bind 192.168.0.29:80 #绑定的IP地址。相当于后面real server的VIP
mode http #HTTP模式,也可以作为TCP的反向代理
stats hide-version
stats enable #开启WEB查看proxy的状态
stats uri /admin?stats #查看PROXY状态的URI
stats auth proxy:kobe24 #查看PROXY状态时登录录要用到的用户名和密码
option httpclose
option forwardfor #让后端的real server 的日志可以记录到CLIENT的IP
cookie SERVERID insert indirect
timeout server 15s
timeout connect 15s
timeout client 20s
#option httpchk HEAD /check.html HTTP/1.0
server www01 192.168.0.100:80 cookie A check port 80 inter 5000 fall 5
server www02 192.168.0.101:80 cookie B check port 80 inter 5000 fall 5
EOF