Haproxy下载地址:
也可用wget
[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 50000listen 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 5listen 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 5listen 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 -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请求。