使用haproxy做TCP协议负载均衡
之前有使用过Nginx进行tcp负载均衡,但后来发现nginx总是会跟服务端进行断开连接、断开连接的操作,所以选择一下别的代理进行处理。
写这个的时候,我也只是把haproxy运行成功,而且简单测试了一下,具体适不适合自己的系统还有待测试。
1.下载haproxy:
从主页下载,我使用的是最新版本,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
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
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
查看启动成功,ps -ef |grep haproxy
PS,测试了一下,情况不太理想,大量连接互相通讯的情况下,会出现消息的现象。
相关推荐
liupengqwert 2020-10-28
wangqd 2020-11-09
Dukezhao 2020-05-29
dancheng 2020-05-26
songjie 2020-02-14
dancheng 2020-05-01
diediexiaomi 2020-04-21
CloudXli 2020-04-20
Carlchangxin 2020-04-10
lenchio 2020-03-27
Noseparte 2020-03-26
zhangwentaohh 2020-03-08
huangzonggui 2020-01-30
OwenJi 2020-01-17
zhongzhiwei 2020-01-04
一叶梧桐 2020-10-14
lzzyok 2020-10-10
88550291 2020-08-21