LVS之高可用群集Haproxy

2023-10-23 13:08
文章标签 haproxy 可用 lvs 之高 群集

本文主要是介绍LVS之高可用群集Haproxy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LVS之高可用群集Haproxy

  • 一、常见的Web集群调度器
  • 二、Haproxy
    • 1、应用分析
    • 2、调度算法原理
  • 三、搭建 Web 群集
    • 1、编译安装Nginx服务器
    • 2、部署haproxy服务器
    • 3、window端访问测试
  • 四、日志定义
  • 五、Haproxy参数优化

一、常见的Web集群调度器

在这里插入图片描述

二、Haproxy

1、应用分析

在这里插入图片描述

2、调度算法原理

在这里插入图片描述

三、搭建 Web 群集

链接: Haproxy软件包
提取码: 2f83
Haproxy-Server 192.168.221.30 haproxy-1.5.19.tar.gz
Nginx-Server1 192.168.221.100 nginx-1.12.0.tar.gz
Nginx-Server2 192.168.221.110 nginx-1.12.0.tar.gz
客户端 Win10 192.168.221.88

1、编译安装Nginx服务器

Nginx-Server1:192.168.221.100
Nginx-Server2:192.168.221.110
安装Nginx服务可以直接使用脚本安装

#!/bin/bash
#编译安装nginx服务,使用本脚本前请将相应的安装包放入/opt目录下
#安装所需开发包和编译环境、编译器
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
#创建程序用户,便于准确控制访问
useradd -M -s /sbin/nologin nginx#解压安装包
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/#指定安装路径、指定用户名和组名
cd nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx#编译及安装
make && make install#软链接便于系统识别nginx操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/#添加nginx系统服务
echo '[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target' > /lib/systemd/system/nginx.service#赋权及开启服务、开启开机自启
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.servicesh nginx.sh #执行脚本
Nginx-Server1:192.168.221.100
echo "this is 192.168.221.100 web" > /usr/local/nginx/html/test.htmlNginx-Server2:192.168.221.110
echo "this is 192.168.221.110 web" > /usr/local/nginx/html/test.html

在这里插入图片描述
在这里插入图片描述

2、部署haproxy服务器

Haproxy-Server 192.168.221.30

(1)关闭防火墙,将安装Haproxy所需软件包传到/opt目录下
systemctl stop firewalld
setenforce 0cd /opt
haproxy-1.5.19.tar.gz

在这里插入图片描述

(2)编译安装 Haproxyyum install -y pcre-devel bzip2-devel gcc gcc-c++ maketar zxvf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
make TARGET=linux2628 ARCH=x86_64
make install

在这里插入图片描述

(3)Haproxy服务器配置mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/cd /etc/haproxy/
vim haproxy.cfg
global#4~5行–修改,配置日志记录,local0为日志设备,默认存放到系统日志3log /dev/log   local0 info		log /dev/log   local0 notice#log loghost    local0 infomaxconn 4096   #最大连接数,需考虑ulimit-n限制#8行–注释,chroot运行路径,为该服务自设置的根目录,一般需将此行注释掉#chroot /usr/share/haproxyuid 99    #用户UIDgid 99    #用户GIDdaemon    #守护进程模式defaults        log     global      #定义日志为global配置中的日志定义mode    http	      #模式为httpoption  httplog     #采用http日志格式记录日志option  dontlognull #不记录健康检查日志信息retries 3           #检查节点服务器失败次数,连续达到三次失败,则认为节点不可用redispatch				    #当服务器负载很高时,自动结束当前队列处理比较久的连接maxconn 2000					#最大连接数contimeout      5000			#连接超时时间clitimeout      50000			#客户端超时时间srvtimeout      50000			#服务器超时时间#删除下面所有listen项–,添加
listen  webcluster 0.0.0.0:80		option httpchk GET /test.html	#检查服务器的test.html文件balance roundrobin				#负载均衡调度算法使用轮询算法roundrobinserver inst1 192.168.221.100:80 check inter 2000 fall 3		#定义在线节点server inst2 192.168.221.110:80 check inter 2000 fall 3#--参数说明----------------
balance roundrobin   #负载均衡调度算法
#轮询算法: roundrobin;最小连接数算法: leastconn;来源访问调度算法: source,类似于nginx的ip_hashcheck inter 2000 #表示haproxy服务器和节点之间的一个心跳频率
fall 3   #表示连续三次检测不到心跳频率则认为该节点失效
若节点配置后带有""backup"表示该节点只是个备份节点,只有主节点失效该节点才会上。不携带"backup",表示为主节点,和其它主节点共同提供服务。

在这里插入图片描述
在这里插入图片描述

(4)添加Haproxy系统服务
(如果你先做Haproxy服务器,这步需要等到Nginx服务器搭建好再去做,不然会启动失败)cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
cd /etc/init.d/
ll
chmod +x haproxy
chkconfig --add /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
service haproxy start

在这里插入图片描述

3、window端访问测试

改下ip同网段即可
在这里插入图片描述

在这里插入图片描述

四、日志定义

默认haproxy的日志是输出到系统的syslog中,查看起来不是非常方便,为了更好的管理haproxy的日志,我们在生产环境中一般单独定义出来。需要将haproxy的info及notice日志分别记录到不同的日志文件中。

vim /etc/haproxy/haproxy.cfg
globallog /dev/log local0 infolog /dev/log local0 noticeservice haproxy restart

需要修改rsyslog配置,为了便于管理。将haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下,rsyslog启动时会自动加载此目录下的所有配置文件。

vim /etc/rsyslog.d/haproxy.confif ($programname == 'haproxy' and $syslogseverity-text == 'info')
then -/var/log/haproxy/haproxy-info.log
&~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log
&~
说明:
这部分配置是将haproxy的info日志记录到/var/log/haproxy/haproxy-info.log下,将notice日志记录到/var/log/haproxy/haproxy-notice.log下。“&~”表示当日志写入到日志文件后,rsyslog停止处理这个信息。systemctl restart rsyslog.servicetail -f /var/log/haproxy/haproxy-info.log		#查看haproxy的访问请求日志信息

五、Haproxy参数优化

在这里插入图片描述

这篇关于LVS之高可用群集Haproxy的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/268032

相关文章

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

VMware8实现高可用(HA)集群

陈科肇 =========== 操作系统:中标麒麟高级操作系统V6 x86-64 实现软件:中标麒麟高可用集群软件 ======================== 1.环境的规划与配置 硬件要求 服务器服务器至少需要 2 台,每台服务器至少需要 2 块网卡以做心跳与连接公网使用存储环境 建议使用一台 SAN/NAS/ISCSI 存储作为数据共享存储空间 软

用Cri-O,Sealos CLI,Kubeadm方式部署K8s高可用集群

3.6 Cri-O方式部署K8s集群 注意:基于Kubernetes基础环境 3.6.1 所有节点安装配置cri-o [root@k8s-all ~]# VERSION=1.28[root@k8s-all ~]# curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensu

LVS学习入门

1.LVS DR模式负载均衡配置详解(配置篇一) http://www.07net01.com/storage_networking/LVS_DRmoshifuzaijunhengpeizhixiangjie_peizhipianyi__56840_1358680093.html 2.LVS负载均衡DR模式部署 http://www.cnblogs.com/xdpxyxy/

Kubernetes高可用集群搭建(kubeadm)

1 Kubernetes高可用集群介绍 前面已经介绍了Kubernetes的集群部署,但是都只是介绍的单master节点的情况,由于单master节点的可靠性不高,不适合实际的生产环境,此处介绍如何实现多master节点的高可用集群的搭建。 2 安装要求 一台或多台机器,操作系统CentOS7.x-x86_64硬件配置:2G或更多ARM,2个CPU或更多CPU,硬盘20G及以上集群中所有机器

# 高可用的并发解决方案nginx+keepalived(一)

高可用的并发解决方案nginx+keepalived(一) 段子手 一、课程计划介绍 1、课程标题 为并发量高的优质网站量身定制高可用的并发解决方案 nginx+keepalived。 2、引导语 在这个互联网飞速发展的时代,人们已经离不开网络,其中网购最为常见。在家网购,上班路上网购,吃饭也购物,下班还网购,2017年双十一天猫支付峰值达到了25.6万笔/秒。热点网站中频繁出现的大量

HBase抗战总结 | 阿里巴巴HBase高可用8年抗战回忆录

前言 2011年毕玄和竹庄两位大神将HBase引入阿里技术体系,2014年接力棒转到东8区第一位HBase commiter天梧手中,多年来与淘宝、旺旺、菜鸟、支付宝、高德、大文娱、阿里妈妈等几乎全BU合作伙伴携手共进,支撑了双十一大屏、支付宝账单、支付宝风控、物流详情等核心业务。2018年双十一,HBase全天处理请求2.4万亿行,单集群吞吐达到千万级别。从一个婴儿成长为青年,阿里HBase

正面超越Spark | 几大特性垫定Flink1.12流计算领域真正大规模生产可用(下)

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 我们书接上文,我们在之前的文章《正面超越Spark | 几大特性垫定Flink1.12流计算领域真正大规模生产可用(上)》详细描述了Flink的生产级别Flink on K8s高可用方案和DataStream API 对批执行模式的支持。 接下来是另外的几个特性增强。 第三个,Flink对SQL操作的全面支持 再很早之前,我在浏览社