使用Haproxy搭建网站群集的方法

  

常见的网络集群调度器

  
 <代码>目前常见的网络集群调度器分为软件和硬件,软件通常使用开源的lv, Haproxy, Nginx,硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼,绿盟等 
  

Haproxy应用分析

  

<强>■lv在企业应用中抗负载能力很强,但存在不足

  
 <代码> lv不支持正则处理,不能实现动静分离
  对于大型网站,lv的实施配置复杂,维护成本相对较高 
  

<强>■Haproxy是一款可提供高可用性,负载均衡,及基于TCP和HTTP应用的代理的软件

  
 <代码>特别适用于负载特别大的网络站点
  运行在当前的硬件上可支持数以万计的并发连接连接请求 
  

Haproxy调度算法原理

  

<强> Haproxy支持多种调度算法,最常用的有三种:

  
 <代码>●RR (Round Robin)
  RR算法是最简单最常用的一种——算法,即轮询调度
  
  理解举例
  有三个节点A, B, C,第一个用户访问会被指派到节点,第二个用
  户访问会被指派到节点B,第三个用户访问会被指派到节点
  第四个用户访问继续指派到节点,轮询分配访问请求实现负载均衡效果 
  
 <代码>●LC(至少连接)
  LC算法即最小连接数算法,根据后端的节点连接数大小动态分配前端请求
  
  理解举例
  有三个节点A, B, C,各节点的连接数分别为:4,B: 5 C: 6,此时如果有第
  一个用户连接请求,会被指派到上,连接数变为:5 B: 5, C: 6
  第二个用户请求会继续分配到上,连接数变为:6 B: 5 C: 6;再有新的请求会分配给B,每次将新的请求指派给连接数最小的客户端
  由于实际情况下A, B, C的连接数会动态释放,很难会出现——样连接数的情况
  因此此算法相比较rr算法有很大改进,是目前用到比较多的-种算法 
  
 <代码>●SH(源散列)
  SH即基于来源访问调度算法,此算法用于一些有会话会话记录在服务器端
  的场景,可以基于来源的IP,饼干等做集群调度
  
  理解举例
  有三个节点A, B, C,第一个用户第一次访问被指派到了,第二个用户第一
  次访问被指派到了B
  当第一个用户第二次访问时会被继续指派到,第二个用户第二次访问时依旧
  会被指派到B,只要负载均衡调度器不重启,第一个用户访问都会被指派到一个,
  第二个用户访向都会被指派到B,实现集群的调度
  此调度算法好处是实现会话保持,但某些IP访问量非常大时会引起负载不均衡
  部分节点访问量超大,影响业务使用 
  

Haproxy配置文件详解

  

<强> Haproxy配置文件通常分为三个部分

  
 <代码>●全球:为全局配置
  ●违约:为默认配置
  ●听:为应用组件配置 
  

<强>全球配置参数

  
 <代码>●日志127.0.0.1 local0:配置日志记录,配置日志记录,ocal0为日
  志设备,默认存放到系统日志
  ●日志127.0.0.1 local1注意:注意为日志级别通常有24个级别
  ●maxconn4096:最大连接数
  ●uid 99:用户uid
  ●99年gid:用户gid  
  

<强>默认配置项配置默认参数,-般会被应用组件继承,如果在应
用组件中没有特别声明,将安装默认配置参数设置

  
 <代码>●日志全球:定义日志为全球配置中的日志定义
  ●模式http:模式为http
  ●选择httplog:采用http日志格式记录日志
  ●重试3:检查节点服务器失败连续达到三次则认为节点不可用
  ●2000年maxconn:最大连接数
  ●5000年contimeout:连接超时时间
  ●50000年clitimeout:客户端超时时间
  ●50000年srtimeout:服务器超时时间 
  

<强>听配置项目一般为配置应用模块参数

  
 <代码>●听appli4-backup 0.0.0.0:10004:定义一-个appli4-backup的
  应用
  ●选择httpchk/索引。html:检查服务器的index . html文件
  选择坚持:强制将请求发送到已经下掉的服务器
  )此平衡循环:负载均衡调度算法使用轮询算法
  ●服务器inst1 192.168.114 .56:80检查国米2000 fall3:定义在
  线节点
  服务器inst2和192。168.114.56:81检查国米2000年秋季3备份
  :定义备份节点 
  

Haproxy日志管理

  

<强> Haproxy的日志默认是输出到系统的syslog中,在生产
环境中一般单独定义出来

使用Haproxy搭建网站群集的方法