使用Haproxy搭建群集

  

<强>常见的网络集群调度器

  
  

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

     

<强> Haproxy应用分析

  

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

  
  

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

     

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

  
  

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

     

<强> Haproxy调度算法原理

  
  

RR:最简单常用的,轮询调度

  

LC:最小连接数算法,根据后端的节点连接数大小动态分配前端请求

  

SH:来源访问调度算法,用于有会话会话记录在服务器端,可以基于来源ip,饼干做群集调度

     

<强> Haproxy日志管理

  

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

  

定义的方法步骤

  Haproxy

修改配置文件中关于日志配置的选项,加入配置:

  
  

日志/devlog local0信息
日志/dev/log local0注意

     

修改rsyslog配置,将Haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下

  

保存配置文件并重启rsyslog服务,完成rsyslog配置

  

<强>随着企业网站负载增加,haproxy参数优化相当重要

  
  

maxconn:最大连接数,根据应用实际情况进行调整,推荐使用10240
守护进程:守护进程模式,Haproxy可以使用非守护进程模式启动,建议使用守护进程模式启动
nbproc:负载均衡的并发进程数,建议与当前服务器CPU核数相等或为其2倍
重试:重试次数,主要用于对集群节点的检查,如果节点多,且并发量大,设置为2次或3次
选项http-server-close:主动关闭http请求选项,建议在生产环境中使用此选项
超时http-keep-alive:长连接超时时间,设置长连接超时时间可以设置为10 s
http请求超时:http请求超时时间,建议将此时间设置为5 ~ 10年代,增加http连接释放速度
超时客户:客户端超时时间,如果访问量过大,节点响应慢可以将此时间设置短一些,建议设置为1分钟左右就可以了

     

使用Haproxy搭建群集

  

实验环境

  
  

Haporxy服务器:192.168.100.210
Nginx服务器1:192.168.100.201
Nginx服务器2:192.168.100.202
客户测试机:192.168.100.100

     

在三台Linux服务器上安装实验所需环境包,将四台虚拟机的网络模式改为仅主机模式。

  

Nginx服务器1配置

  

1,配置固定IP地址

  
  

[root@localhost ~] # vim/etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=以太网
PROXY_METHOD=没有
BROWSER_ONLY=没有
BOOTPROTO=静态# dhcp改为静态
DEFROUTE=yes
IPV4_FAILURE_FATAL=没有
IPV6INIT=是的
IPV6_AUTOCONF=
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=没有
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8 ecd53ce-afdb-46f8-b7ff-b2f428a3bc8f
设备=ens33
ONBOOT=yes
IPADDR=192.168.100.201 # IP地址
子网掩码为255.255.255.0 #子网掩码=
网关192.168.100.1 #网关
[root@localhost ~] # systemctl重启网络#重启网络服务
[root@localhost ~] # ifconfig #查看网卡信息
ens33:=4163 & lt;旗帜,广播,跑步,MULTICAST>mtu 1500
inet 192.168.100.201子网掩码255.255.255.0广播192.168.100.255 # IP地址配置成功
inet6 fe80:: c776:9d00:618:88f2 prefixlen 64 scopeid 0 x20<每日
乙醚00:0c: 29:海尔哥哥:34:07 txqueuelen 1000(以太网)
RX 51789字节数据包75688349 (72.1 MiB)
RX错误0下降0超支0 0
TX帧数据包543001 7987字节(530.2简约)
TX错误0下降0超支0载体碰撞0

     

挂载工具包,解压Nginx源码包

  
  

[root@localhost ~] # mkdir/mnt/工具#创建挂载点
root@localhost ~ #山。cifs//192.168.100.100/工具/mnt/工具/#挂载
密码root@//192.168.100.100/工具:
[root@localhost ~] # cd/mnt/工具/LNMP/
[root@localhost LNMP] # ls
Discuz_X3.4_SC_UTF8。邮政nginx-1.12.2.tar。广州php-7.1.20.tar.gz

使用Haproxy搭建群集