1 下载地址
http://www.haproxy.org/download/1.6/src/haproxy-1.6.14.tar.gz
2 安装
tar xf haproxy-1.6.14.tar.gz -C /usr/local/src/cd /usr/local/src/cd haproxy-1.6.14/uname -a修改 Makefile[root@node1 haproxy-1.6.14]# vim Makefile……PREFIX = /usr/local/haproxy #修改SBINDIR = $(PREFIX)/sbinMANDIR = $(PREFIX)/share/manDOCDIR = $(PREFIX)/doc/haproxy#### TARGET system# Use TARGET=to optimize for a specifc target OS among the# following list (use the default "generic" if uncertain) :# generic, linux22, linux24, linux24e, linux26, solaris,# freebsd, openbsd, netbsd, cygwin, custom, aix51, aix52TARGET = linux26 #添加make && make install 安装完的信息:install -d "/usr/local/haproxy/sbin"install haproxy "/usr/local/haproxy/sbin"install -d "/usr/local/haproxy/share/man"/man1install -m 644 doc/haproxy.1 "/usr/local/haproxy/share/man"/man1install -d "/usr/local/haproxy/doc/haproxy"拷贝启动文件cp /usr/local/haproxy/sbin/haproxy /usr/sbin/ 将启动脚本拷贝到/etc/init.d/haproxycp haproxy.init /etc/init.d/haproxy授予执行权限chmod +x /etc/init.d/haproxyuseradd -r haproxy创建haproxy工作目录mkdir /etc/haproxymkdir /var/lib/haproxy拷贝主配置文件cp auth.cfg /etc/haproxy/haproxy.cfg 打开514 监听日志vim /etc/rsyslog.conf $ModLoad imtcp$InputTCPServerRun 514local3.* /var/log/haproxy.logservice rsyslog restart
3 haproxy 配置文件
#全局配置global #日志级别 log 127.0.0.1 local3 info chroot /var/lib/haproxy #运行用户 user haproxy #运行用户组 group haproxy #守护进程运行方式 daemo #最大连接数 maxconn 8192#默认配置defaults #设置log使用全局log log global #工作模式 mode http #记载http日志 option httplog #不记录空日志 option dontlognull #连接超时时间ms为单位 timeout connect 5000 #客户端连接超时时间 timeout client 50000 #服务端连接超时时间 timeout server 50000#前端代理 #运行用户组 group haproxy #守护进程运行方式 daemon #最大连接数 maxconn 8192#默认配置defaults #设置log使用全局log log global #工作模式 mode http #记载http日志 option httplog #不记录空日志 option dontlognull #连接超时时间ms为单位 timeout connect 5000 #客户端连接超时时间 timeout client 50000 #服务端连接超时时间 timeout server 50000#前端代理frontend www_hellozz_com #绑定主机和端口 bind *:80 #uri状态 stats uri /haproxy?stats #转发到对应的后端主机组 default_backend backend_www_hellozz_com#后端代理 backend backend_www_hellozz_com #自定义头部信息获取客户端真实IP option forwardfor header X-REAL-IP #自定义option健康检查 可不写 默认检查端口 option httpchk GET /index.html #负载均衡方式 roundrobin 轮询,source like iphash,cookie,SERVERID #source 根据请求源IP #static-rr 根据权重 #leastconn 最少连接者先处理 #uri 根据请求的uri #url_param 根据请求的url参数 #rdp-cookie 据据cookie(name)来锁定并哈希每一次请求 #hdr(name) 根据HTTP请求头来锁定每一次HTTP请求 #roundrobin 轮询方式 balance roundrobin #真实Server check 支持url健康检测 inter 时间间隔默认为毫秒,rise 检查次数, fall 失败次数 weight 权重 server node1 10.10.100.151:80 check inter 2000 rise 3 fall 3 weight 1 server node2 10.10.100.152:80 check inter 2000 rise 3 fall 3 weight 1启动haproxy/etc/init.d/haproxy start
4 haproxy负载均衡算法
Haproxy有8种负载均衡算法(balance),分别如下:1.balance roundrobin # 轮询,软负载均衡基本都具备这种算法2.balance static-rr # 根据权重,建议使用3.balance leastconn # 最少连接者先处理,建议使用4.balance source # 根据请求源IP,建议使用5.balance uri # 根据请求的URI6.balance url_param,# 根据请求的URl参数'balance url_param' requires an URL parameter name7.balance hdr(name) # 根据HTTP请求头来锁定每一次HTTP请求8.balance rdp-cookie(name) # 根据据cookie(name)来锁定并哈希每一次TCP请求