1 haproxy 下载 从如下目录下载haproxy:http://www.haproxy.org/download/1.7/src/haproxy-1.7.1.tar.gz
2 haproxy 安装
解压haproxy: tar -xvf haproxy-1.7.1.tar.gz
进入haproxy目录:cd haproxy-1.7.1/
编译haproxy:sudo make TARGET=linux31 PREFIX=/usr/local/haproxy
安装haproxy:sudo make install PREFIX=/usr/local/haproxy
3 haproxy配置:
进入haproxy目录:cd /usr/local/haproxy/
创建haproxy配置文件:sudo vi haproxy-rabbitmq.cfg
如下是用haproxy 为rabbimq做高可用集群的配置
global
log 127.0.0.1 local1
log-tag haproxy
maxconn 4096
#user haproxy
#group haproxy
daemon
stats socket /var/run/haproxy.sock mode 600 level admin
stats timeout 2m
defaults
log global
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
option dontlognull
option http-server-close
listen admin
bind 0.0.0.0:8008
mode http
stats uri /stats
frontend rabbitmq
mode tcp
bind 0.0.0.0:5679
#把client的超时时间设置的长一点很重要,HAProxy默认是50秒,这样如果50秒还没有消息到来,HAProxy就会断开客户端,这是不合适的
timeout client 168h
default_backend rabbitmq_nodes
log global
option tcplog
option logasap
backend rabbitmq_nodes
mode tcp
balance roundrobin
timeout server 168h
server apple 0.0.0.0:5674 check inter 1000 fall 3 rise 3
server dell 0.0.0.0:5675 check inter 1000 fall 3 rise 3
server xiaomi 0.0.0.0:5673 check inter 1000 fall 3 rise 3
#我把RabbitMQ的管理界面也放在HAProxy后面了
listen rabbitmq_admin
bind 0.0.0.0:15679
mode http
timeout server 168h
balance roundrobin
server apple 127.0.0.1:15673 check inter 1000 fall 3 rise 3
server dell 127.0.0.1:15674 check inter 1000 fall 3 rise 3
说明:
server apple 127.0.0.1:15673 check inter 1000 fall 3 rise 3
如上代码:
server<name> :后台服务器定义中的内部标识
<IP>:<port> :连接到后台服务器的IP和端口号
check inter <value> :定义了每个多少毫秒检查后台服务器是否可用
rise <value>:表明了后台服务器在发生故障之后,需要完成多少次健康检测,才能再次被确认可用
fall <value> :表明需要经历多少次的失败健康检测,HAProxy才会停止使用后台服务器
启动方法 ./sbin/haproxy -f haproxy-rabbitmq.cfg