Haproxy高性能负载均衡(天生的负载均衡器)

复制代码
Haproxy高性能负载均衡(天生的负载均衡器)

	1.Haproxy相关概念
	 (1)概念
		HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理
		HAProxy非常适用于并发大(并发达1w以上)web站点,这些站点通常又需要会话保持或七层处理
		可以很简单安全的整合至当前的架构中,同时可以保护web服务器不被暴露到公网

	(2)工作模式

		代理与调度的区别:

		代理:工作于osi模型的第七层,对客户端的"数据包"进行二次封装
				比如手机和电脑的请求数据包
		调度:工作于osi模型的第四层,直接转发客户端的数据包到真实服务器

		mode http:只适用于web服务
		mode tcp:适用于各种服务
		mode health:仅做健康检查,很少使用

	(3)调度算法
		roundrobin:轮询
		static-rr:加权轮询
		leastconn:最少连接者先处理  
		source:根据请求源IP,类似于nginx的ip_hash  
		ri:根据请求的URI  
		rl_param:根据请求人URL参数'balance url_param'  
		rdp-cookie(name) :根据cookie(name)来锁定并哈希每一次的TCP请求  
		hdr(name) :根据HTTP请求头来锁定每一次HTTP请求

	2.Haproxy负载均衡集群搭建

		(1)lvs1节点安装Haproxy软件
			[root@pubserver cluster]# vim 12_install_haproxy.yml
			---
			- name: config haproxy
			  hosts: lvs1
			  tasks:
			    - name: stop keepalived #停止Keepalived服务
			      service:
			        name: keepalived
			        state: stopped
			        enabled: false
			    - name: remove softs    #卸载软件
			      yum:
			        name: ipvsadm,keepalived
			        state: absent
			    - name: modify hostname #设置主机名
			      shell: "hostnamectl set-hostname haproxy"
			    - name: install haproxy #安装软件
			      yum:
			        name: haproxy
			        state: present
			
		(2)配置Haproxy负载平衡集群

		  配置文件说明
		    global为全局配置,通常保持默认即可
		    defaults为缺省配置,如果后续有相同配置则覆盖缺省值
		    frontend描述用户和haproxy交互
		    backend描述haproxy和真实服务器交互
		    frontend和backend的配置方式适合负载的url代理配置,通常不使用
		    通常使用listen模式,理解为虚拟主机即可

		[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 
			...
			listen webservers           #定义虚拟服务器
			        bind 0.0.0.0:80     #定义监听端口,0.0.0.0允许本机所有
			        mode http           #定义工作模式
			        balance roundrobin  #定义调度算法
			        server web1 192.168.88.100:80 check inter 2000 rise 2 fall 5
			        server web2 192.168.88.200:80 check inter 2000 rise 2 fall 5
			            #check:对后端服务器进行健康检查
			            #inter:健康检查心跳包发送时间间隔
			            #rise:连续检查N次有响应则认为健康
			            #fall:连续检查N次无响应则认为故障
		
		(3)启动systemctl start haproxy.service 

		
	3.Haproxy健康检查页面
	      (1)配置Haproxy
		[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 
		...
		listen stats                    #定义虚拟服务器
		        bind 0.0.0.0:1080       #定义监听端口
		        stats refresh 30s       #定义页面刷新时间
		        stats uri /stats        #定义请求路径
		        stats auth admin:admin  #定义用户/密码



		(2)## 参数说明:
			Queue:队列数据的信息(当前队列数量、最大值、队列限制数量)
			Session rate:每秒会话率(当前值、最大值、限制数量)
			Sessions:总会话量(当前值、最大值、总量)
			Bytes:流量统计(入站、出站流量)
			Denied:拒绝请求情况(拒绝请求、拒绝回应)
			Errors:错误请求情况(错误请求、错误连接、错误回应)
			Warings:警告情况(重新尝试警告、重新连接警告)
			Server:后端服务器情况(状态、最后检查时间、权重、备份服务器数量、宕机服务器数量、宕机时长	




HAProxy、LVS、Keepalived、Nginx区别:

	
	高性能:HAProxy专注于高性能负载均衡,可工作于四层和七层
	
	高可用:LVS基于linux内核的负载均衡技术,工作在四层,资源消耗低,承受的访问量大
	Keepalived则强调高可用性,通过VRRP协议实现服务的主备切换,健康检查等
	
	相对全面:Nginx作为高性能的HTTP和反向代理服务器,广泛应用于Web应用程序中,提供高并发连接处理和灵活的配置选项,工作在七层
	
	功能:nginx>haproxy>lvs
	性能:lvs>haproxy>nginx

Haproxy高性能负载均衡(天生的负载均衡器)

1.Haproxy相关概念

(1)概念

HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理

HAProxy非常适用于并发大(并发达1w以上)web站点,这些站点通常又需要会话保持或七层处理

可以很简单安全的整合至当前的架构中,同时可以保护web服务器不被暴露到公网

(2)工作模式

代理与调度的区别:

代理:工作于osi模型的第七层,对客户端的"数据包"进行二次封装

比如手机和电脑的请求数据包

调度:工作于osi模型的第四层,直接转发客户端的数据包到真实服务器

mode http:只适用于web服务

mode tcp:适用于各种服务

mode health:仅做健康检查,很少使用

(3)调度算法

roundrobin:轮询

static-rr:加权轮询

leastconn:最少连接者先处理

source:根据请求源IP,类似于nginx的ip_hash

ri:根据请求的URI

rl_param:根据请求人URL参数'balance url_param'

rdp-cookie(name) :根据cookie(name)来锁定并哈希每一次的TCP请求

hdr(name) :根据HTTP请求头来锁定每一次HTTP请求

2.Haproxy负载均衡集群搭建

(1)lvs1节点安装Haproxy软件

root@pubserver cluster\]# vim 12_install_haproxy.yml --- - name: config haproxy hosts: lvs1 tasks: - name: stop keepalived #停止Keepalived服务 service: name: keepalived state: stopped enabled: false - name: remove softs #卸载软件 yum: name: ipvsadm,keepalived state: absent - name: modify hostname #设置主机名 shell: "hostnamectl set-hostname haproxy" - name: install haproxy #安装软件 yum: name: haproxy state: present (2)配置Haproxy负载平衡集群 配置文件说明 global为全局配置,通常保持默认即可 defaults为缺省配置,如果后续有相同配置则覆盖缺省值 frontend描述用户和haproxy交互 backend描述haproxy和真实服务器交互 frontend和backend的配置方式适合负载的url代理配置,通常不使用 通常使用listen模式,理解为虚拟主机即可 \[root@haproxy \~\]# vim /etc/haproxy/haproxy.cfg ... listen webservers #定义虚拟服务器 bind 0.0.0.0:80 #定义监听端口,0.0.0.0允许本机所有 mode http #定义工作模式 balance roundrobin #定义调度算法 server web1 192.168.88.100:80 check inter 2000 rise 2 fall 5 server web2 192.168.88.200:80 check inter 2000 rise 2 fall 5 #check:对后端服务器进行健康检查 #inter:健康检查心跳包发送时间间隔 #rise:连续检查N次有响应则认为健康 #fall:连续检查N次无响应则认为故障 (3)启动systemctl start haproxy.service 3.Haproxy健康检查页面 (1)配置Haproxy \[root@haproxy \~\]# vim /etc/haproxy/haproxy.cfg ... listen stats #定义虚拟服务器 bind 0.0.0.0:1080 #定义监听端口 stats refresh 30s #定义页面刷新时间 stats uri /stats #定义请求路径 stats auth admin:admin #定义用户/密码 (2)## 参数说明: Queue:队列数据的信息(当前队列数量、最大值、队列限制数量) Session rate:每秒会话率(当前值、最大值、限制数量) Sessions:总会话量(当前值、最大值、总量) Bytes:流量统计(入站、出站流量) Denied:拒绝请求情况(拒绝请求、拒绝回应) Errors:错误请求情况(错误请求、错误连接、错误回应) Warings:警告情况(重新尝试警告、重新连接警告) Server:后端服务器情况(状态、最后检查时间、权重、备份服务器数量、宕机服务器数量、宕机时长 HAProxy、LVS、Keepalived、Nginx区别: 高性能:HAProxy专注于高性能负载均衡,可工作于四层和七层 高可用:LVS基于linux内核的负载均衡技术,工作在四层,资源消耗低,承受的访问量大 Keepalived则强调高可用性,通过VRRP协议实现服务的主备切换,健康检查等 相对全面:Nginx作为高性能的HTTP和反向代理服务器,广泛应用于Web应用程序中,提供高并发连接处理和灵活的配置选项,工作在七层 功能:nginx\>haproxy\>lvs 性能:lvs\>haproxy\>nginx

相关推荐
在下千玦12 分钟前
#在 CentOS 7 中手动编译安装软件操作及原理
linux
Penguido27 分钟前
基于 Nexus 在 Dockerfile 配置 yum, conda, pip 仓库的方法和参考
linux·docker·centos·conda·pip
浩~~34 分钟前
HTML5 中实现盒子水平垂直居中的方法
java·服务器·前端
zhangxiangweide43 分钟前
Docker换源
运维·docker·容器
天上掉下来个程小白43 分钟前
添加购物车-02.代码开发
java·服务器·前端·后端·spring·微信小程序·苍穹外卖
网络空间小黑1 小时前
WEB渗透测试----信息收集
服务器·前端·网络·安全·web安全·网络安全
Fireworkitte1 小时前
企业级常用的 CentOS版本
linux·运维·centos
liulilittle2 小时前
MAC-OS X 命令行设置IP、掩码、网关、DNS服务器地址
linux·网络·macos
星寂樱易李2 小时前
Ubuntu 18.04 iso文件下载
linux·运维·ubuntu
羑悻的小杀马特3 小时前
【Linux篇章】Linux 进程信号2:解锁系统高效运作的 “隐藏指令”,开启性能飞跃新征程(精讲捕捉信号及OS运行机制)
linux·运维·服务器·学习·os·进程信号