使用haproxy做TCP协议负载均衡

梦之旅 2013-11-14

之前有使用过Nginx进行tcp负载均衡,但后来发现nginx总是会跟服务端进行断开连接、断开连接的操作,所以选择一下别的代理进行处理。

写这个的时候,我也只是把haproxy运行成功,而且简单测试了一下,具体适不适合自己的系统还有待测试。

1.下载haproxy:

http://haproxy.1wt.eu/

从主页下载,我使用的是最新版本,haproxy-1.4.24.tar.gz

2.安装haproxy:

tar zxvf haproxy-1.4.24.tar.gz

cd haproxy-1.4.24

make TARGET=linux26 PREFREX=/usr/local/haproxy

make install PREFREX=/usr/local/haproxy

3.配置文件:

cd /usr/local/haproxy

mkdir conf

cd conf

vim haproxy.cfg

配置文件内容haproxy.cfg
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
chroot /usr/local/haproxy
uid nobody
gid nobody
daemon
#debug
#quiet
pidfile /root/Desktop/haproxy.pid
defaults
mode tcp               #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
retries 3              #两次连接失败就认为是服务器不可用,也可以通过后面设置
option redispatch      #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose    #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
maxconn 32000          #默认的最大连接数
timeout connect 5000ms #连接超时
timeout client 30000ms #客户端超时
timeout server 30000ms #服务器超时
#timeout check 2000    #心跳检测超时


listen test1
bind 0.0.0.0:8008
mode tcp
balance roundrobin
server s1 172.16.241.43:8010 weight 1 maxconn 10000 check inter 10s
server s1 172.16.241.43:8011 weight 1 maxconn 10000 check inter 10s
server s1 172.16.241.43:8012 weight 1 maxconn 10000 check inter 10s

 4.启动文件:

vim haproxy.sh

haproxy.sh
#!/bin/sh
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

查看启动成功,ps -ef |grep haproxy

PS,测试了一下,情况不太理想,大量连接互相通讯的情况下,会出现消息的现象。

相关推荐