1、访问www.haproxy.org下载haproxy源码包,需要翻墙下载
2、编译安装源码包
[root@localhost ~]# tar zxvf haproxy-1.6.3.tar.gz
[root@localhost ~]# cd haproxy-1.6.3/
[root@localhost haproxy-1.8.13]# make TARGET=linux26
####这里需要使用cat /etc/redhat-release查看系统版本centos6.X需要使用TARGET=linux26 centos7.x使用linux31
[root@localhost haproxy-1.8.13]# cat /etc/redhat-release #查询系统版本
3.10.0-862.el7.x86_64
[root@localhost haproxy-1.8.13]# make install PREFIX=/usr/local/haproxy
[root@localhost haproxy-1.8.13]# mkdir /usr/local/haproxy/conf
[root@localhost haproxy-1.8.13]# cp examples/option-http_proxy.cfg /usr/local/haproxy/conf/haproxy.cfg
3、haproxy.cfg配置
global
maxconn 65535 #并发最大连接数量
stats socket /var/run/haproxy.stat mode 600 level admin
log 127.0.0.1 local0
uid 99 #用户 必须是本机查看显示的id
gid 99 #组
chroot /var/empty
daemon #后台运行
defaults
mode http #默认使用 http 的 7 层模式 tcp: 4 层
log global
option httplog #http 日志格式
option dontlognull #禁用空链接日志
monitor-uri /monitoruri
maxconn 8000
timeout client 300s
retries 2
option redispatch
timeout connect 300s
timeout server 300s
stats uri /admin/stats #haproxy 监控页面
# The public 'www' address in the DMZ
frontend public
bind 172.25.27.1:8001 name clear
#use_backend static if { hdr_beg(host) -i img }
#use_backend static if { path_beg /img /css }
default_backend dynamic
# The static backend backend for 'Host: img', /img and /css.
backend dynamic
option forwardfor
mode http
cookie SERVERID insert indirect nocache #基于cookie做负载均衡
server web1 127.0.0.1:10080 cookie web1 check inter 1500 rise 3 fall 3 weight 1
server web2 127.0.0.2:10080 cookie web2 check inter 1500 rise 3 fall 3 weight 1
listen rabbitmq
bind 0.0.0.0:5670
##listen rabbitmq 10.10.1.53:5670
#监听5670端口,并转发给两个个节点的5672端口,采用轮询策略
mode tcp
balance roundrobin
server mq2 192.168.xx.53:5672 check inter 2000 rise 2 fall 3
server mq3 192.168.xx.54:5672 check inter 2000 rise 2 fall 3
4、启动haproxy
[root@localhost ~]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
[root@localhost ~]# killall haproxy
5、开放端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 5672 -j ACCEPT