如可安装部署haproxy+keeyalived高可用集群

ops/2025/2/5 13:49:06/

第一步,环境准备

服务

IP

描述

Keepalived  vip

Haproxy  负载均衡

主服务器

Rip:192..168.244.101

Vip:192.168.244.100

Keepalive主节点

Keepalive作为高可用

Haproxy作为4 或7层负载均衡

Keepalived  vip

Haproxy  负载均衡

备用服务器

Rip:192.168.244.102

Vip:192.168.244.100

Keepalive从节点

Keepalive作为高可用

Haproxy作为4 或7层负载均衡

Web服务器1

192.168.244.103

后端真实服务器

Web服务器2

192.168.244.104

后端真实服务器

关闭selinux、firewalld、配置yum源,修改主机名,配置域名解析,配置时间同步

修改主机名

hostnamectl set-hostname master

hostnamectl set-hostname backup

hostnamectl set-hostname server1 

hostnamectl set-hostname server2

配置域名解析,四台服务器都配置

# cat >> /etc/hosts <<EOF

192.168.244.101 master

192.168.244.102 backup

192.168.244.103 server1

192.168.244.104 server2

EOF

关闭防火墙,关闭selinux,四台服务器都要关闭

systemctl disable firewalld --now

关闭selinux

sed -i '/^SELINUX/s/enforcing/disabled/g' /etc/selinux/config

setenforce 0

安装常用软件

yum -y install ntpdate bash-completion* net-tools wget

配置时间同步

crontab -e

*/1 * * * * /usr/sbin/ntpdate ntp.aliyun.com

四台服务器配置yum源

#wget -O \

/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

#wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

第二步,安装httpd服务器,server1和server2安装httpd,并启动httpd

在server1和server2上安装web服务器

server1 ~]# yum -y install httpd

server1 ~]echo "server1" > /var/www/html/index.html

server1 ~]# systemctl start httpd

server1 ~]# curl 192.168.244.103

server2 ~]# yum -y install httpd

server2 ~]echo "server02" > /var/www/html/index.html

server2 ~]# systemctl start httpd

server2 ~]# curl 192.168.244.104

第三步,安装keepalived

开始安装keepalived,并将/etc/keepalived/keepalived.conf文件进行备份

在master和backup两台服务器上安装

yum -y install keepalived

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

第四步,开始修改keepalived.conf配置文件 ,在master和backup两台服务器上修改

cat > /etc/keepalived/keepalived.conf << EOF

global_defs {

   router_id LVS_master  #主和从要有单独的route_id

}

vrrp_instance VI_1 {

    state MASTER  #主为MASTER 从为BACKUP

    interface ens33  #指定配机网卡的设备名

    virtual_router_id 51  #指定虚拟路由主从要一致

    priority 100  #指定优先级主优先高 从做先级低

    advert_int 1  #心跳检测时间间隔

    authentication {  #keepalived内通信认证方式

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {  #指定绑定的vip

        192.168.244.100

    }

}

EOF

master上要修改的keeplived.conf配置文件

backup上要修改的keeplived.conf配置文件

第五步,开启keepalived

启动keepalived

master ~]# systemctl start keepalived

backup ~]# systemctl start keepalived

使用ip a指令查看vip是否配置成功

在master主服务器上配置成功

[root@master ~]# ip a

[root@backup ~]# ip a         //从服务器上没有

测试一下vip是否飘移

关闭master服务器上的keepalived,查看backup服务器上是否有vip 也就是192.168.244.100/32的IP地址,有这说明vip漂移到了backup从服务器上,再开启master主服务器上的keepalived,就会漂移到master主服务器上

[root@master ~]# systemctl stop keepalived.service

成功

第六步,安装haproxy

Master和backup上安装

[root@master ~]# yum -y install haproxy

[root@backup ~]# yum -y install haproxy

备份一下/etc/haproxy/haproxy.cfg 文件 ,防止修改出问题

[root@master ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

[root@backup ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

第七步,haproxy配置文件,修改/etc/haproxy/haproxy.cfg 文件,master和backup上都要修改

[root@master ~]# vim /etc/haproxy/haproxy.cfg

listen stats

   bind 0.0.0.0:880

   stats enable

   stats uri /status

   stats auth admin:123456

   stats refresh

frontend web_in

   bind 0.0.0.0:80

   use_backend web

backend web

   balance roundrobin

   server web1 192.168.244.103:80 check weight 2

   server web2 192.168.244.104:80 check weight 8

拷贝配置文件到备服务器

# scp /etc/haproxy/haproxy.cfg 192.168.244.102:/etc/haproxy/

启动hyproxy

[root@master ~]# systemctl start haproxy.service

[root@backup ~]# systemctl start haproxy.service

账号:admin   密码:123

成功,也实现了负载均衡

但是Haproxy+keepalived高可用集群,允许keepalived宕机,允许后端真实服务器宕机,但是不允许haproxy宕机。

解决方案参考

Haproxy+keepalived高可用集群,haproxy宕机的解决方案-CSDN博客


http://www.ppmy.cn/ops/155884.html

相关文章

springboot项目Redis统计在线用户

SEO Meta Description: 了解如何在Spring Boot项目中使用Redis实现在线用户统计&#xff0c;提供详细的实现步骤和代码示例&#xff0c;帮助您高效管理在线用户。 介绍 在现代Web应用中&#xff0c;统计在线用户是一个常见需求。通过Redis可以高效地管理和统计在线用户。本文…

低空经济火热,大载重物流运输无人机技术详解

低空经济是指在3000米以下的低空空域为依托&#xff0c;以各种有人和无人驾驶航空器的低空飞行活动为牵引&#xff0c;辐射带动相关领域融合发展的综合性经济形态。随着技术的发展和政策的支持&#xff0c;低空经济已经成为一个热门领域&#xff0c;特别是在物流运输方面&#…

【Blazor学习笔记】.NET Blazor学习笔记

我是大标题 我学习Blazor的顺序是基于Blazor University&#xff0c;然后实际内容不完全基于它&#xff0c;因为它的例子还是基于.NET Core 3.1做的&#xff0c;距离现在很遥远了。 截至本文撰写的时间&#xff0c;2025年&#xff0c;最新的.NET是.NET9了都&#xff0c;可能1…

Linux:指令大全(二)

cat命令 在linux中&#xff0c;我们是没办法用鼠标进行翻页阅读的&#xff0c;如果我们想要阅读文件的话&#xff0c;则需要用到cat指令。 语法&#xff1a;cat 选项 文件 功能&#xff1a;查看文件的内容 常用选项&#xff1a; -b 对非空行编号-n 对所有行编号-s 禁止重复的…

【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(三)

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;贪心算法篇–CSDN博客 文章目录 前言例题1.最优除法2.跳跃游戏23.跳跃游戏14.加油站5.单调递…

每日 Java 面试题分享【第 19 天】

欢迎来到每日 Java 面试题分享栏目&#xff01; 订阅专栏&#xff0c;不错过每一天的练习 今日分享 3 道面试题目&#xff01; 评论区复述一遍印象更深刻噢~ 目录 问题一&#xff1a;Java Object 类中有什么方法&#xff0c;有什么作用&#xff1f;问题二&#xff1a;Java …

lstm代码解析1.2

在使用 LSTM&#xff08;长短期记忆网络&#xff09;进行训练时&#xff0c;model.fit 方法的输入数据 X 和目标数据 y 的形状要求是不同的。具体来说&#xff1a; 1. 输入数据 X 的形状 LSTM 层期望输入数据 X 是三维张量&#xff0c;形状为 (samples, timesteps, features)…

leetcode——二叉树展开为链表(java)

给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1&#…