先简单介绍下haproxy:
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
详情请参考:百度百科
下面直接给出配置步骤:
步骤一:
搭建好mysql主主复制架构或者主从复制架构,下面主要以主从架构为例子,假设目前咱们已经搭建好主从架构了,mysql的主从复制架构网上已经有很多
教程了,如果有不懂的朋友可以私下再探讨探讨!
步骤二:
下载并配置haproxy,目前基本所有的主流web中间件都偏向于linux系统,因此,windows下相关资料是非常缺乏的!本文主要以讨论windows为主,下载 haproxy并编译为windows版本,下面提供一个编译地址:haproxy编译教程
编译完成后,windows下基本的目录架构如下:
步骤三:
修改haproxy主配置文件haproxy.cfg
用Sublime打开haproxy.cfg,并修改配置如下:
以上为基本的配置过程,是不是很容易呢!下面给出完整的配置文件内容:
global
log 127.0.0.1 local0
#log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 1500
chroot C:\Users\Administrator\Desktop\haproxy #haproxy所在目录
uid haproxy
gid haproxy
daemon
nbproc 2
pidfile C:\Users\Administrator\Desktop\haproxy\haproxy.pid #haproxy.pid文件所在目录
#debug
#quiet
defaults
#log 127.0.0.1 local3
mode http
option httplog
option httpclose
option dontlognull
option forwardfor
option redispatch
retries 2
maxconn 2000
#balance roundrobin
#stats enable
#stats uri /ha?stats #haproxy运行状态查看 自定义uri
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen mysql
bind 0.0.0.0:23306 #绑定的端口号
mode tcp #模式 TCP
option mysql-check user root #mysql健康检查 root为mysql登录用户名
balance static-rr #调度算法roundrobin
#balance source #默认的负载均衡的方式,类似nginx的ip_hash
#balance leastconn #默认的负载均衡的方式,最小连接
#balance roundrobin #默认的负载均衡的方式,轮询方式
server mysql1 127.0.0.1:3305 weight 1 check inter 1s rise 2 fall 2 #健康检查加上check
server mysql2 127.0.0.1:3307 weight 1 check inter 1s rise 2 fall 2
#server mysql3 127.0.0.1:3308 weight 2 check inter 1s rise 2 fall 2
listen stats #监控
mode http
bind 0.0.0.0:8888
stats enable
stats uri /dbs
stats realm Global\ statistics
stats auth admin:admin