HAProxy TCP路由配置

文章介绍了如何在Linux系统上配置haproxy作为TCP负载均衡器,包括确认系统支持tcp转发、安装haproxy、编辑配置文件以设置负载均衡策略,以及监控和日志记录。haproxy在此配置中用于将流量从9999端口转发到9998和9997端口,当9998满载时才转向9997。此外,还提到了使用rsyslog进行日志管理和通过9990端口访问监控页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        haproxy是基于4层协议的转发负载工具,与nginx(主7层)一样,适合做tcp的负载均衡(eg.mysql),使用该功能 主要分3步。

1.确认linux当前系统支持tcp转发

2.安装haproxy

3.配置文件

确认认linux当前系统支持tcp转

vim /etc/sysctl.conf
vim /etc/sysctl.conf.d/xx.conf
检查文件中 是否有 
net.ipv4.ip_nonlocal_bind=1
net.ipv4.ip_forward=1
没有则加上
然后 sysctl -p  启用

安装haproxy

yum install proxy
也可解压后install
systemctl start haproxy
然后
systemctl satus haproxy
查看是否正常

配置文件

vi /etc/haproxy/haproxy.cfg
#tcp转发
frontend in
    mode tcp
    bind *:9999
    default_backend out
    log global
    option tcplog
    option dontlognull
    option nolinger
    option forwardfor
backend out
    #当第一个负载满之后,才请求到第2个tcp服务
    balance first 
    server s1 localhost:9998 check port 9998 inter 1000 fall 1 on-marked-up shutdown-backup-sessions
    #此处backup标记,代表非backup全挂之后走过来,当上线时把backup节点的tcp都踢掉
    server backup localhost:9997 check port 9998 inter 1000 fall 1 backup

如以上配置文件 ,设置了 9999端口转发到9998 和9997 ,只有9998连接满了,才到9997

可以用 nc -l -p 9997 进行模拟,值得注意的是,当前这nc命令行只能连接一个tcp客户端,如果是自有程序就可以用多线程啥的。

cpu匹配,如有需要可用 cpu-map 

日志采用rsyslog

global标签中配置:

log 127.0.0.1 local6(此处local6代表6等级,建议local6 info级别,还有local1-7)

然后 vim /etc/rsyslog.cnf

设置 local6 /var/log/haproxy.log

当tcp断开连接时,日志中会打印

最后:

监控页面配置

########统计页面配置########
listen admin_stats
bind yourip:9990 #监听端口
mode http         #http的7层模式
option httplog    #采用http日志格式
#log 127.0.0.1 local0 err
maxconn 10
stats refresh 30s #统计页面自动刷新时间
stats uri /

打开yourip:9990就可以看到监控了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值