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工具进行调整,其特点是在两个数据流之间建立双向通道。

相关推荐
海尔辛14 分钟前
学习黑客5 分钟小白弄懂Windows Desktop GUI
windows·学习
忧虑的乌龟蛋37 分钟前
嵌入式Linux I2C驱动开发详解
linux·驱动开发·嵌入式·iic·i2c·读数据·写数据
I_Scholar1 小时前
OPENSSL-1.1.1的使用及注意事项
linux·ssl
Johny_Zhao2 小时前
K8S+nginx+MYSQL+TOMCAT高可用架构企业自建网站
linux·网络·mysql·nginx·网络安全·信息安全·tomcat·云计算·shell·yum源·系统运维·itsm
稳联技术2 小时前
Ethercat转Profinet网关如何用“协议翻译术“打通自动化产线任督二脉
linux·服务器·网络
烟雨迷2 小时前
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
linux·服务器·学习·编辑器·vim
@十八子德月生2 小时前
8天Python从入门到精通【itheima】-1~5
大数据·开发语言·python·学习
Bruk.Liu2 小时前
Linux 上安装RabbitMQ
linux·服务器·rabbitmq
UpUpUp……3 小时前
Linux--JsonCpp
linux·运维·服务器·c++·笔记·json
Willis_m3 小时前
Linux 服务器用 SSH 拉取多个 Git 工程
linux·服务器·git·ssh