Haproxy介绍及学习

一、负载均衡(load balance):

1.一种服务基于硬件设备实现的高可用反向代理技术 ,将特定的业务分担给指定的一个或者多个后端特定的服务器,提高了业务的并发处理能力保证业务的高可用并方便对业务后期的水平动态扩展性。

2.使用负载均衡的原因:

web服务器的动态水平扩展对用户无感知

增加业务并发访问及处理能力进而解决了单服务器的瓶颈问题

节约公网ip地址

隐藏内部服务器ip

配置简单

支持四层和七层支持动态下线主机

3.四层负载均衡

通过ip+port决定负载均衡的去向且对流量请求进行nat处理转发到后台服务器

记录tcp、udp流量分别是由哪台服务器处理后续该请求连接的流量都通过该服务器处理

支持四层的软件:

lvs:重量级的四层负载均衡器

nginx:轻量级的四层负载均衡器

haproxy:模拟四层转发

4.七层负载均衡

通过url或主机ip进行流量识别,根据应用层信息进行解析决定是否需要进行负载均衡

代理后台服务器与客户端建立连接

支持七层代理的软件:

nginx:基于http协议

haproxy:七层代理,会话保持

5.四层和七层的区别

它们主要是依据四层或七层的信息来决定怎样转发流量

四层负载均衡是通过发布三层的ip地址然后加四层端口号来决定哪些流量做负载均衡,对需要处理的流量进行nat处理转发到后台服务器

七层负载均衡在四层的基础上考虑应用层,四层无需解析报文消息内容七层可以支持解析应用层保温消息内容

四层负载均衡类似于路由器七层类似于代理服务器

二、haproxy 简介

1.haproxy是法国开发者威利塔罗在2000年使用c语言开发的支持高并发、高性能的tcp和http负载均衡器。支持cookie的持久性,自动故障切换支持正则表达式和web状态统计

2.haproxy的安装和服务信息

环境:客户端 eth0:172.25.254.10

haproxy eth0:172.25.254.100,eth1:192.168.0.10

rs1 eth0:192.168.0.101

rs2 eth0:192.168.0.102

软件安装:

基本配置信息:其配置文件为 /etc/haproxy/haproxy.cfg,该配置文件由两大部分组成:

global:全局配置段

进程及安全配置相关参数

性能调整相关参数

debug参数

proxies:代理配置参段

defaults:为frontend,backend,listen提供默认配置

frontend:前端,相当于nginx中的server{}

backend:后端,相当于nginx中的upstream{}

listen:同时拥有前端和后端配置

global配置:

chroot:锁定运行目录 chroot /var/lib/haproxy

deamon:以守护进程运行

user,group,uid,gid:运行haproxy的用户身份

nbproc N: 开启的haproxy worker进程数,默认进程数是1个

nbthread 1: 指定haproxy进程数开启的线程数,默认为每个进程一个线程

cpu-map 1 0: 绑定haproxy worker 进程到指定的cpu,将1个worker进程绑定到0号cpu

cpu-map 2 1: 绑定haproxy worker进程到指定cpu,将第二个work进程绑定到1号cpu

maxconn N: 每个haproxy进程的最大并发连接数

pidfile: 指定pid文件路径

log 127.0.0.1 local2 info: 定义全局的syslog服务器

listen stats

mode http

bind 0.0.0.0:8888

stats enable

log global

stats uri /haproxy-status

stats auth test:test

proxies配置:

frontend 前端servername,类似于nginx的虚拟主机server和lvs服务集群

frontend xiao-webserver-80

bind 172.25.254.100:80

mode http

use_backend xiao-webserver-80-rs 调用backend的名称

backend 后端服务器组,等于nginx的upstream和lvs中的rs服务器

定义一组后端服务器,backend服务器将f被rontend进行调用,其名称必须唯一,且必须在listen或fronted中事先定义才可以使用否则服务无法启动

backend xiao-webserver-80-rs

mode http

server web1 192.168.0.101:80 check inter 3s fall 3 rise 5

server web2 192.168.0.102:80 check inter 3s fall 3 rise 5

listen webserver_80

bind 172.25.254.100:80

mode forwardfor

server webserver1 192.168.0.101:80 check inter 3s fall 3 rise 5

server webserver2 192.168.0.102:80 check inter 3s fall 3 rise 5

3.socat工具

对服务器动态权重和其他状态可以利用socat工具进行调整,其特点是在两个数据流之间建立双向通道。

相关推荐
咕咚.萌西11 分钟前
RISC-V开发环境搭建
linux·硬件架构·risc-v
NiKo_W1 小时前
Linux 初识
linux·运维·服务器
磊灬泽6 小时前
【日常错误】鼠标无反应
linux·windows
知识分享小能手6 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
茯苓gao9 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾9 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT10 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa10 小时前
HTML和CSS学习
前端·css·学习·html
Miracle&10 小时前
2.TCP深度解析:握手、挥手、状态机、流量与拥塞控制
linux·网络·tcp/ip
专注API从业者10 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python