CentOS6.4 配置Haproxy
Haproxy下载地址:http://pan.baidu.com/share/link?shareid=1787182295&uk=1829018343
也可用wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz
[root@A local]# yum install -y gcc [root@A local]# tar zxvf haproxy-1.4.24.tar.gz [root@A local]# cd haproxy-1.4.24 [root@A haproxy-1.4.24]# make install [root@A haproxy-1.4.24]# mkdir -p /usr/local/haproxy/etc [root@A haproxy-1.4.24]# mkdir -p /usr/local/haproxy/sbin [root@A haproxy-1.4.24]# cp examples/haproxy.cfg /usr/local/haproxy/etc [root@A haproxy-1.4.24]# ln -s /usr/local/sbin/haproxy /usr/local/haproxy/sbin/haproxy [root@A haproxy-1.4.24]# vi /usr/local/haproxy/etc/haproxy.cfg
global log 127.0.0.1 local0
maxconn 4096 #最大连接数
chroot /usr/local/haproxy
uid 99 #所属运行的用户UID
gid 99 #所属运行用用户组
daemon #以后台形式运行HAProxy nbproc 1 #启动1个实例,可以启多个来提高效率
defaults log global mode http option httpclose #每次请求完毕后主动关闭http通道
option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器 option forwardfor #
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
option dontlognull #保证HAProxy不记录上级负载均衡发送过来的用于检测状态没有数据的心跳包
retries 2 maxconn 2000 balance source #如果想让HAProxy按照客户端的IP地址进行负载均衡策略,即同一IP地址的所有请求都发送到同一服务器时,需要配置此选项
contimeout 5000 clitimeout 50000 srvtimeout 50000 listen web_proxy 10.10.3.163:80 mode http server web1 10.10.3.13:8817 cookie app1inst1 check inter 2000 rise 2 fall 5 server web2 10.10.3.151:8400 cookie app1inst2 check inter 2000 rise 2 fall 5 listen scoket_proxy 10.10.3.163:12315 mode tcp server scoket1 10.10.3.158:12315 check inter 2000 rise 2 fall 5 server scoket2 10.10.3.10:12315 check inter 2000 rise 2 fall 5 listen admin_stats bind *:1080 #监听端口 mode http #http的7层模式 option httplog #采用http日志格式 log 127.0.0.1 local0 err maxconn 10 stats refresh 30s #统计页面自动刷新时间 stats uri /stats #统计页面url stats realm XingCloud\ Haproxy #统计页面密码框上提示文本 stats auth admin:admin #统计页面用户名和密码设置 stats hide-version #隐藏统计页面上HAProxy的版本信息
启动Haproxy
haproxy -f /usr/local/haproxy/etc/haproxy.cfg
停止Haproxy
killall haproxy
访问
http://10.10.3.163:1080/stats
配置直接重定向URL
现在HAProxy的算法也非常多,并不比专业的F5/LVS算法少,常用的算法有如下8种:
balance roundrobin,表示简单的轮询,建议关注;
balance static-rr,表示根据权重,建议关注;
balance leastconn,表示最少连接者先处理,建议关注;
balance source,表示根据请求源IP,跟Nginx的ip_hash算法相似,建议关注;
balance uri,表示根据请求的URI;
balance url_param,表示根据请求的URl参数;
balance hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
balance rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。