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
相关推荐
群联云防护小杜21 分钟前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
PyAIGCMaster44 分钟前
ubuntu装P104驱动
linux·运维·ubuntu
奈何不吃鱼44 分钟前
【Linux】ubuntu依赖安装的各种问题汇总
linux·运维·服务器
zzzhpzhpzzz1 小时前
Ubuntu如何查看硬件型号
linux·运维·ubuntu
蜜獾云1 小时前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
陌北v11 小时前
Docker Compose 配置指南
运维·docker·容器·docker-compose
只会copy的搬运工1 小时前
Jenkins 持续集成部署——Jenkins实战与运维(1)
运维·ci/cd·jenkins
娶不到胡一菲的汪大东2 小时前
Ubuntu概述
linux·运维·ubuntu
阿里嘎多学长2 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器
Yuan_o_2 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端