Haproxy负载均衡

nginx 四层转发 七层代理

lvs 四层转发内核态 用户态

Haproxy 四层转发,七层转发

1、Haproxy的作用和使用场景

1、场景 主要用户高并发的web场景,可以支出1万个以上的并发请求,高性能的tcp和http的负载均衡器。

2、工作原理

haproxy就像LVS的调度器,高可用即实现两台haproxy服务器一主一备。

3、作用

1、进行四层和七层转发

2、主持https

3、haproxy本身不自带缓存功能,可以在请求当中添加cookie,使用缓存功能

4、支持主备切换(keepalive)

4、特点

可靠性高,稳定性好

可以同时维护4万-5万并发,单位时间内可以处理的最大请求数是2万个(单位时间:1秒或者1分钟)

支持负载均衡算法,虽然不带缓存,但是可以支持会话保持

rr

wrr

leastconn

5、实验

Haproxy安装

复制代码
#haproxy安装包存放在/opt
cd /opt
tar -xf haproxy-1.5.19.tar.gz
mv haproxy-1.5.19 haproxy
cd haproxy/
uname -r
#查看本机的内核版本
make TARGET=linux2628 ARCH=x86_64
#TARGET内核版本要低于本机的内核版本,架构是x86_64
make install
mkdir /etc/haproxy
cd examples
cp haproxy.cfg /etc/haproxy

对haproxy配置文件进行设置

复制代码
vim /etc/haproxy/haproxy.cfg

global
#4-5行
	log /dev/log local0 info
	log /dev/log local1 notice
	maxconn 4096
	#最大连接数,推荐使用10240,需要系统内核参数修改最大打开文件数
	#注释下一行
	#chroot /usr/share/haproxy
	
	#添加下一行
	nbproc 4
	#Haproxy的并发线程数,设置的数量最好是CPU的2倍或者和CPU保持一致

defaults
#默认参数配置,包括连接配置、监听配置以及代理配置
	option httplog
	#类型 http日志
	retries 3
	#检查节点服务器3次,连续3次失败,就认为节点服务器不可用
	redispatch
	#服务器负载很高时,自动结束当前队列中处理比较久的连接
	maxconn 2000
	#最大连接数,不能超过global设置的maxconn
	#下面三行注释掉,已经不用了
	#contimeout
	#clitimeout
	#srvtimeout
	
	
	timeout http-request 10s
	#http请求的默认超时时间
	timeout queue 1m
	#在队列当中请求的超时时间
	timeout connect 10s
	#连接超时时间
	timeout client 1m
	#客户端超时时间
	timeout server 1m
	#服务端超时时间
	timeout http-keep-alive 10s
	#默认长连接的超时时间(不是会话保持)
	timeout check 10s
	#检查后端服务器的超时时间


#转发请求的设置,既可以是四层,也可以是七层
#四层和七层择其一,不要都写

#七层转发的配置
listen yang1 0.0.0.0:80
	option httpchk GET /index.html
	#设置转发请求的内容,方式GET, 获取内容 index.html
	balance static-rr
	#轮询算法
	server rs01 192.168.10.41:80 check inter 2000 fall 3 weight 2
	server rs02 192.168.10.42:80 check inter 2000 fall 3 weight 3

	#server 指定真实服务器,rs01 自定义后端服务器名称
	#check inter 2000 :启动对后端服务器进行健康检查,检查的间隔时间2000ms
	#fall 3 连续三次检查不到,任务失败

#四层转发
#四层转发的配置
frontend test
#定义服务的名称为test,前端名为test
	bind *:80
	#监听所有网络接口,端口为80
	mode tcp
	#设置负载均衡的模式为TCP
	default_backend test
	#指定默认后端服务名为test

backend test
#定义后端名为test,负责处理前端传递来的请求
	mode tcp
	#前后端模式匹配,都设置为TCP
	balance roundrobin
	#设置负载均衡算法为轮询,即rr
	server rs01 192.168.10.41:80 check inter 2000 fall 3 weight 2
	server rs02 192.168.10.42:80 check inter 2000 fall 3 weight 3

#保存配置

让haproxy命令可以被系统识别到

复制代码
cd /haproxy/example
cp haproxy.init /etc/init.d/haproxy
chmod 777 /etc/init.d/haproxy
chkconfig --add /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin

启动haproxy服务

复制代码
systemctl start haproxy
相关推荐
乘云数字DATABUFF2 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--4 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森4 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜4 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB5 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode7 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220707 天前
如何搭建本地yum源(上)
运维
大树8810 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠10 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质10 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务