centos7系统keepalived安装配置(服务器主备、负载均衡)

这篇具有很好参考价值的文章主要介绍了centos7系统keepalived安装配置(服务器主备、负载均衡)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

脚本

https://gitcode.net/zengliguang/nginx_keepalived.git

系统拓扑

centos安装keepalived,centos7,服务器,linux,运维

安装keepalived

主备服务器上都需要安装

在线安装

yum install  -y  keepalived 

离线安装

主服务器脚本

# 设置虚拟机ip、网卡命令、hostname(后期自动获取)
master_ipaddress=192.168.11.54
backup_ipaddress=192.168.11.53
virtual_ipaddress=192.168.11.56
hostname=localhost.localdomain
interface=ens33 

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
#永久关闭
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
#创建文件夹
mkdir /home/tuners -p
# 拷贝到tuners路径下
\cp -r ./*keepalived* /home/tuners
echo "拷贝完成"

# 离线安装
cd /home/tuners/keepalived
rpm -Uvh --force --nodeps *.rpm
# 生成主服务器配置文件

cat > /etc/keepalived/keepalived.conf << EOF
global_defs {
 
    router_id $hostname # 访问到主机,本机的hostname,需要修改
}
 
vrrp_script chk_http_port {
    script "/usr/local/src/nginx_check.sh" # 检测脚本位置
    interval 2 #(检测脚本执行的间隔)
    weight 2 # 权重
}
 
vrrp_instance VI_1 {
    state MASTER # 备份服务器上将 MASTER 改为 BACKUP,需要修改
    interface $interface # 网卡名字,使用ifconfig查看,需要修改
    virtual_router_id 51 # 主、备机的 virtual_router_id 不能相同
    priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小,一般主100从90
    advert_int 1 # 每隔1秒发送心跳
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    unicast_src_ip $master_ipaddress      ##自己ip
    unicast_peer {                            #单模式
        $backup_ipaddress                           #另一个ip
    }
    virtual_ipaddress {
        $virtual_ipaddress #// VRRP H 虚拟地址,也可以绑定多个虚拟ip,需要修改
    }
}
EOF

# 生成备服务器配置文件
# cat > /etc/keepalived/keepalived.conf << EOF
# global_defs {
 
#     router_id localhost.localdomain # 访问到主机,本机的hostname,需要修改
# }
 
# vrrp_script chk_http_port {
#     script "/usr/local/src/nginx_check.sh" # 检测脚本位置
#     interval 2 #(检测脚本执行的间隔)
#     weight 2 # 权重
# }
 
# vrrp_instance VI_1 {
#     state BACKUP # 备份服务器上将 MASTER 改为 BACKUP,需要修改
#     interface ens33 # 网卡名字,使用ifconfig查看,需要修改
#     virtual_router_id 59 # 主、备机的 virtual_router_id 不能相同
#     priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小,一般主100从90
#     advert_int 1 # 每隔1秒发送心跳
#     authentication {
#         auth_type PASS
#         auth_pass 1111
#     }
#     virtual_ipaddress {
#         $virtual_ipaddress #// VRRP H 虚拟地址,也可以绑定多个虚拟ip,需要修改
#     }
# }
# EOF
# 生成监测脚本

# cat > /usr/local/src/nginx_check.sh << EOF
# #!/bin/bash
# A=\`ps -C nginx – no-header |wc -l\`
# if [ \$A -eq 0 ];then
#     /usr/sbin/nginx #nginx启动路径
#     sleep 2
#     if [ \`ps -C nginx --no-header |wc -l\` -eq 0 ];then
#         killall keepalived
#     fi
# fi 
# EOF

cat > /usr/local/src/nginx_check.sh << EOF
    rm -rf ./tmp.log
    systemctl status nginx.service  > ./tmp.log
    if cat tmp.log |grep "failed";then
        systemctl start nginx.service
        sleep 2
        rm -rf ./tmp.log
        systemctl status nginx.service  > ./tmp.log
        if cat tmp.log |grep "failed";then
            systemctl stop keepalived.service
        fi
    fi
EOF
# 启动keepalived
systemctl enable keepalived.service
systemctl restart keepalived.service
# 查看keepalived
systemctl status keepalived.service

备服务器脚本

# 设置虚拟机ip、网卡命令、hostname(后期自动获取)
master_ipaddress=192.168.11.54
backup_ipaddress=192.168.11.53
virtual_ipaddress=192.168.11.56
hostname=localhost.localdomain
interface=ens33 

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
#永久关闭
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
#创建文件夹
mkdir /home/tuners -p
# 拷贝到tuners路径下
\cp -r ./*keepalived* /home/tuners
echo "拷贝完成"

# 离线安装
cd /home/tuners/keepalived
rpm -Uvh --force --nodeps *.rpm
# 生成主服务器配置文件

# cat > /etc/keepalived/keepalived.conf << EOF
# global_defs {
 
#     router_id localhost.localdomain # 访问到主机,本机的hostname,需要修改
# }
 
# vrrp_script chk_http_port {
#     script "/usr/local/src/nginx_check.sh" # 检测脚本位置
#     interval 2 #(检测脚本执行的间隔)
#     weight 2 # 权重
# }
 
# vrrp_instance VI_1 {
#     state MASTER # 备份服务器上将 MASTER 改为 BACKUP,需要修改
#     interface ens33 # 网卡名字,使用ifconfig查看,需要修改
#     virtual_router_id 51 # 主、备机的 virtual_router_id 不能相同
#     priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小,一般主100从90
#     advert_int 1 # 每隔1秒发送心跳
#     authentication {
#         auth_type PASS
#         auth_pass 1111
#     }
#     virtual_ipaddress {
#         $virtual_ipaddress #// VRRP H 虚拟地址,也可以绑定多个虚拟ip,需要修改
#     }
# }
# EOF

# 生成备服务器配置文件
cat > /etc/keepalived/keepalived.conf << EOF
global_defs {
 
    router_id $hostname # 访问到主机,本机的hostname,需要修改
}
 
vrrp_script chk_http_port {
    script "/usr/local/src/nginx_check.sh" # 检测脚本位置
    interval 2 #(检测脚本执行的间隔)
    weight 2 # 权重
}
EOF

vrrp_instance VI_1 {
    state BACKUP # 备份服务器上将 MASTER 改为 BACKUP,需要修改
    interface $interface # 网卡名字,使用ifconfig查看,需要修改
    virtual_router_id 59 # 主、备机的 virtual_router_id 不能相同
    priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小,一般主100从90
    advert_int 1 # 每隔1秒发送心跳
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    unicast_src_ip $backup_ipaddress      ##自己ip
    unicast_peer {                            #单模式
        $master_ipaddress                           #另一个ip
    }
    virtual_ipaddress {
        $virtual_ipaddress #// VRRP H 虚拟地址,也可以绑定多个虚拟ip,需要修改
    }
}
EOF
# 生成监测脚本

# cat > /usr/local/src/nginx_check.sh << EOF
# #!/bin/bash
# A=\`ps -C nginx – no-header |wc -l\`
# if [ \$A -eq 0 ];then
#     /usr/sbin/nginx #nginx启动路径
#     sleep 2
#     if [ \`ps -C nginx --no-header |wc -l\` -eq 0 ];then
#         killall keepalived
#     fi
# fi 
# EOF
cat > /usr/local/src/nginx_check.sh << EOF
    rm -rf ./tmp.log
    systemctl status nginx.service  > ./tmp.log
    if cat tmp.log |grep "failed";then
        systemctl start nginx.service
        sleep 2
        rm -rf ./tmp.log
        systemctl status nginx.service  > ./tmp.log
        if cat tmp.log |grep "failed";then
            systemctl stop keepalived.service
        fi
    fi
EOF

# 启动keepalived
systemctl enable keepalived.service
systemctl restart keepalived.service

# 查看keepalived
systemctl status keepalived.service

服务器准备

虚拟机ip:192.168.11.56

主服务器:192.168.11.53

备服务器:192.168.11.54

配置文件修改

keepalived安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf

/etc/keepalived

centos安装keepalived,centos7,服务器,linux,运维

主服务器配置文件

global_defs {
 
    router_id localhost.localdomain # 访问到主机,本机的hostname,需要修改
}
 
vrrp_script chk_http_port {
    script "/usr/local/src/nginx_check.sh" # 检测脚本位置
    interval 2 #(检测脚本执行的间隔)
    weight 2 # 权重
}
 
vrrp_instance VI_1 {
    state MASTER # 备份服务器上将 MASTER 改为 BACKUP,需要修改
    interface ens33 # 网卡名字,使用ifconfig查看,需要修改
    virtual_router_id 59 # 主、备机的 virtual_router_id 组播模式不能相同,单播模式必须相同
    priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小,一般主100从90
    advert_int 1 # 每隔1秒发送心跳
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    unicast_src_ip 192.168.11.53       ##自己ip
    unicast_peer {                            #单模式
        192.168.11.54                            #另一个ip
    }
    virtual_ipaddress {
        192.168.11.56 #// VRRP H 虚拟地址,也可以绑定多个虚拟ip,需要修改
    }
}

 需要修改的内容如下

hostname 需要修改

centos安装keepalived,centos7,服务器,linux,运维

hostname获取方式 :在命令行中输入hostname

centos安装keepalived,centos7,服务器,linux,运维

 网卡命令需要修改:interface这个字段的值

centos安装keepalived,centos7,服务器,linux,运维

查看网卡信息:输入下面命令

ip  a

 下图中ens33就是网卡名字

 centos安装keepalived,centos7,服务器,linux,运维

虚拟ip需要修改:virtual_ipaddress 这个字段

centos安装keepalived,centos7,服务器,linux,运维

备服务器配置文件

global_defs {
 
    router_id localhost.localdomain # 访问到主机,本机的hostname,需要修改
}
 
vrrp_script chk_http_port {
    script "/usr/local/src/nginx_check.sh" # 检测脚本位置
    interval 2 #(检测脚本执行的间隔)
    weight 2 # 权重
}
 
vrrp_instance VI_1 {
    state BACKUP # 备份服务器上将 MASTER 改为 BACKUP,需要修改
    interface ens33 # 网卡名字,使用ifconfig查看,需要修改
    virtual_router_id 59 # 主、备机的 virtual_router_id  组播模式不能相同,单播模式必须相同
    priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小,一般主100从90
    advert_int 1 # 每隔1秒发送心跳
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    unicast_src_ip 192.168.11.54       ##自己ip
    unicast_peer {                            #单模式
        192.168.11.53                            #另一个ip
    }
    virtual_ipaddress {
        192.168.11.56 #// VRRP H 虚拟地址,也可以绑定多个虚拟ip,需要修改
    }
}

 需要修改的内容跟主服务器脚本一样

监测脚本

主备切换的测试的两种方案

方案1:关服务器

方案2: 停nginx应用

centos安装keepalived,centos7,服务器,linux,运维

 监测脚本流程

 centos安装keepalived,centos7,服务器,linux,运维

监测脚本路径:/usr/local/src/nginx_check.sh

功能:检测nginx是否启动,如果停了就重启,如果还是起不来,就停止keepalived。

主备服务器上都需要配置

    rm -rf ./tmp.log
    systemctl status nginx.service  > ./tmp.log
    if cat tmp.log |grep "failed";then
        systemctl start nginx.service
        sleep 2
        rm -rf ./tmp.log
        systemctl status nginx.service  > ./tmp.log
        if cat tmp.log |grep "failed";then
            systemctl stop keepalived.service
        fi
    fi

启动keepalived

systemctl start keepalived.service

重启keepalived

systemctl restart keepalived.service

 查询keepalived状态

systemctl status keepalived.service

nginx部署

nginx web页面修改

nginx配置文件路径:/etc/nginx/nginx.conf,该配置文件引用了/etc/nginx/conf.d/default.conf

centos安装keepalived,centos7,服务器,linux,运维

centos安装keepalived,centos7,服务器,linux,运维

打开/etc/nginx/conf.d/default.conf配置文件可以看到html页面的路径

/usr/share/nginx/html 为路径
 index.html为页面

centos安装keepalived,centos7,服务器,linux,运维

进入到对应路径下

centos安装keepalived,centos7,服务器,linux,运维

打开页面文件,修改信息,作为访问的服务器的标记,比如我服务器是54,我就在页面中加上54

centos安装keepalived,centos7,服务器,linux,运维

具体访问呈现效果如下

centos安装keepalived,centos7,服务器,linux,运维文章来源地址https://www.toymoban.com/news/detail-856405.html

到了这里,关于centos7系统keepalived安装配置(服务器主备、负载均衡)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux(CentOS7.9)MongoDB的安装配置教程3个服务器+增量备份(带脚本)

    首先,作为前端的开发人员,使用 MongoDB 数据库 是非常常见的,接下来是在 Linux 系统下安装和配置 MongoDB 的过程。只要按照以下步骤操作,相信你一定可以顺利完成安装。 Ⅰ、安装前的简介: 1、什么是 MongoDB 数据库? MongoDB 是用 C++ 语言编写的,是一个基于分布式文件存储

    2024年04月08日
    浏览(63)
  • Centos7下Samba服务器配置

    环境 vm下centos7.6,IP地址:192.168.139.200 Samba概述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等

    2024年02月03日
    浏览(46)
  • [CentOS] Dell塔式服务器安装CentOS7

    主要基于 UEFI + GPT方式引导,Legacy+MBR的方式这里不做讨论 CentOS7.5 UltraISO 9.3.x 机型:DELL OPTIPLEX 7080 机型: DELL OPTIPLEX 5090 机型: DELL OPTIPLEX 300 U盘:容量8G及以上 以上三款机型均通过测试 启动方式: UEFI (Boot list option 选择UEFI) 硬盘模式: ACHI (SATA operation选择ACHI) 关闭安全

    2024年02月06日
    浏览(59)
  • centos7服务器安装 mysql

    官网:https://dev.mysql.com/downloads/mysql/ 1.查看有没有需要卸载的SQL包,一般系统的mariadb是自带的,需要卸载 例如:安装过MySQL 使用如下命令卸载 2.解压与rpm安装 解压 安装 显示需要依赖的,直接用–nodeps参数 3、登录配置 启动 获取密码 登录 修改密码 刷新权限 配置远程登录

    2024年01月25日
    浏览(55)
  • 利用阿里云服务器(CentOS7.8 64位)建站时报404 Not Found nginx解决办法以及Nginx(1.20.1)的安装及配置全过程

            这几天在利用阿里云服务器部署自建小网站项目时,发现这个问题:404 Not Found nginx。经过检查后发现是因为Nginx在云服务器上还没安装上。现准备好以后解决办法供有需要的小伙伴们参考。         网站域名及备案的具体步骤我就不再一一说啦,不知道的可以看

    2024年02月04日
    浏览(52)
  • vsftpd安装配置,Linux系统配置FTP服务器教程(CentOS 7)

    vsftpd(very secure FTP daemon)是Linux下的一款小巧轻快、安全易用的FTP服务器软件 。今天飞飞将和你分享 Linux 系统 安装并配置vsftpd ,搭建FTP环境 。 先让我们来认识下FTP! FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式: 主动

    2024年02月09日
    浏览(62)
  • CentOS7安装squid代理服务器

    做合法公民,切勿使用代理服务器上外网!!! 在VPN不够用的情况先为远程办公的用户可以使用代理服务器访问公司内部电脑 同时家里的内网也可以使用代理服务器 您需要准备一台已经连接了外网的 CentOS 7 安装 squid ,使用命令: 看到这个代表安装完成: 现在我们需要配置

    2024年02月09日
    浏览(53)
  • 云服务器(Centos7系统)配置JAVA+mysql+tomcat 环境 MySQL修改root用户密码_mysql改密码_折竹丶的博客-CSDN博客

    文章主要内容来源云服务器(Centos7系统)部署javaweb项目(二)配置JAVA+mysql+tomcat 环境_man_zuo的博客-CSDN博客  模仿途中遇到的问题 连接无效 有时连接无法下载,可能是过期了,将其更换为官网给的下载连接即可  Centos指令mysql安装报错为“ Failing package is: mysql-community-client-

    2024年02月11日
    浏览(47)
  • 关于centos7配置dns服务器我出现的问题

                    我是新安装的centos7,也是第一次配置dns服务器,出现了许多问题,如下所示: 前提是已经完成dns所有的配置之后发现的问题哈! 1.network unreachable resolving         这个错误的原因是named尝试使用ipv6进行传输,所以 我们要让它只在ipv4的模式下进行 解决方

    2024年01月17日
    浏览(57)
  • 服务器安装KVM环境并安装虚拟机(centOS7)

    一. 安装KVM环境 1. 检测是否支持KVM         cat /proc/cpuinfo | egrep \\\'vmx|svm\\\'         返回结果中有vmx或svm,说明cpu是支持的 2. 关闭SELinux,将 /etc/sysconfig/selinux 中的  SELinux=enforcing  修改为  SELinux=disabled         vi /etc/sysconfig/selinux 3. 安装KVM环境 4. 重启服务器,加载k

    2024年04月09日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包