haproxy负载均衡记录

haproxy的安装很简单,可是前提是你的linux有gcc环境,简单记录一下mysql

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
tar zxvf haproxy-1.4.8.tar.gz
cd haproxy-1.4.8
make TARGET=linux26 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy

这里要注意的是本身的linux版本,使用uname -a命令能够查看linux

安装好以后的路径是在web

/usr/local/haproxy

接下来是配置文件redis

  

global
       log 127.0.0.1 local0
       maxconn 4096
       user root
       group root
       daemon

defaults
       log global
       mode tcp
       option tcplog
       option dontlognull
       retries 3
       option redispatch
       maxconn 2000
       contimeout 4000
       clitimeout 50000
       srvtimeout 30000
       stats enable
       stats scope .

frontend mysql_cluster
       bind *:3306
       default_backend mysql_cluster_back

backend mysql_cluster_back
       mode tcp
       option tcpka
       option mysql-check
       balance roundrobin
       server db01_1.1.1.1 192.168.50.1:3306 weight 1 check port 3306 
       server db02_2.2.2.2 192.168.50.130:3306 weight 100 check port 3306


listen stats 0.0.0.0:8899
       mode http
       option httpclose
       balance roundrobin
       stats uri /admin-status
       stats realm Haproxy\ Statistics
       stats auth admin:admin

 这是一个简单的配置文件,global和defaults基本均可以不变,重要的是frontend 和backend
sql

 关于frontend,我是这样理解的,至关于声明了一个名为:mysql_cluster的函数,这个函数监听了运行haproxy机器的3306端口,而后将这个端口的请求交给了backend名为mysql_cluster_back的模块来处理,这里要申明代理的协议tcp,我这里是须要作mysql的集群,因此是tcp,若是是webserver的集群,那么能够写成httpshell

balance 是负载均衡的策略,对应的策略能够google数据库

 server db01_1.1.1.1 192.168.50.1:3306 weight 1 check port 3306 
 server db02_2.2.2.2 192.168.50.130:3306 weight 100 check port 3306

这两句是定义实际的mysql服务器信息,我这边是两台,能够定义权重,check port 3306是对两台服务器mysql的端口进行健康检查,还有其余参数,不详解。浏览器

listen stats 0.0.0.0:8899
       mode http
       option httpclose
       balance roundrobin
       stats uri /admin-status
       stats realm Haproxy\ Statistics
       stats auth admin:admin

这个模块主要是定义了haproxy的一个监控界面信息,绑定8899端口,经过浏览器能够访问haproxy的监控界面服务器

在上面两台机器上开启mysql服务,而后在本机保存配置文件到安装目录下负载均衡

haproxy的执行命令是


/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

而后能够在浏览器中输入:

http://192.168.50.129:8899/admin-status

查看机器状况,若是一切正常,则都是绿色

这个时候,链接mysql节点

mysql -h192.168.50.129 -utest-ptest -P3306

注意两个真实的mysql服务器必须具备相同的用户名和密码,才能达到负载均衡的效果

而后你会发现,haproxy会轮的在两台真实服务器之间转换,注意192.168.50.129 这台机器并无安装mysql


总得来讲,haproxy能够对http以及tcp请求进行反向代理和负载均衡,对于webserver、数据库均可以用很低的代价实现最大的效果,可是实际的生产环境中,要负载不少,能够和keepalived一块儿使用,使用虚拟ip的方式,来避免单点故障。

相关文章
相关标签/搜索