HAproxy 安装:
//下载源码
https://src.fedoraproject.org/repo/pkgs/haproxy/
uname -r
make TARGET=linux310 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
参数说明:
TARGET=linux310,内核版本,使用uname -r查看内核,如:3.10.0-514.el7,此时该参数就为linux310;kernel 大于2.6.28的可以用:TARGET=linux2628;
ARCH=x86_64,系统位数;
PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,为haprpxy安装路径。
//配置修改
vim haproxy.cfg
global
//日志选项
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
//加载默认负载均衡配置
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
//前端ip,供消费者和生产者使用
listen rabbitmq_local_cluster 127.0.0.1:5670
//负载均衡选项
mode tcp
balance roundrobin
//负载均衡中的集群节点配置
// server <name> <ip>:<port> check inter <value> rise <value> fall <value>
// 1.server <name> 后台服务器定义的内部标识
// 2.<ip>:<port> 连接到后台服务器的ip和端口号
// 3.check inter <value> 定义了每隔多少毫秒检查后台服务器是否可用
// 4.rise <value> 表明了后台服务器在发生故障之后,需要完成多少次健康检查,才能再次被确认可用
// 5.fall <value> 表明需要经历多少次失败的健康检测,haproxy 才会停止使用后台服务器
server rabbit 127.0.0.1:5672 check inter 5000 rise 2 fall 3
server rabbit_1 127.0.0.1:5673 check inter 5000 rise 2 fall 3
server rabbit_2 127.0.0.1:5674 check inter 5000 rise 2 fall 3
//数据统计页面,可选。可以连接到 http://localhost:8100/stat 观察haproxy的当前状态
listen private_monitoring :8100
mode http
option httplog
stats enable
stats uri /stats
stats refresh 5s
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main *:5000
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
use_backend static if url_static
default_backend app
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
balance roundrobin
server static 127.0.0.1:4331 check
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
balance roundrobin
server app1 127.0.0.1:5001 check
server app2 127.0.0.1:5002 check
server app3 127.0.0.1:5003 check
server app4 127.0.0.1:5004 check