阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7 LVS+Keepalived实现Nginx的高可用以及负载均衡

490次阅读
没有评论

共计 3766 个字符,预计需要花费 10 分钟才能阅读完成。

在 Linux 下有很多服务可以实现负载均衡,比如 Nginx、HAProxy、LVS 等服务,但是对于高可用服务,我们在 Linux 下最常见也是应用最多的是 Keepalived,对于这些综合服务对于一个管理员来说是必须要会的,所以今天我们主要介绍的是 CentOS7+Nginx+Keepalived 实现 WEB 服务的高可用负载均衡。

一、准备工作:关闭防火墙,selinux 以免对实验结果造成影响,准备虚机,设置 IP 地址、主机名

hostname:Nginx01
IP:192.168.1.87
Role:Nginx Server
hostname:Nginx02
IP: 192.168.1.88
Role:Nginx Server
hostname:LVS01
IP: 192.168.1.89
Role:LVS+Keepalived
hostname:LVS02
IP: 192.168.1.90
Role:LVS+Keepalived
VIP:192.168.1.253

二、安装相关软件、以及配置文件修改:LVS、keepalived、nginx 该文档软件安装全部使用 yum
1、nginx01 以及 nginx02 都执行
yum install -y nginx
 
# 安装以后启动 nginx
 
systemctl start nginx.service

修改测试页面内容便于区分,根据主机名修改 index.html 文件

vim /usr/share/nginx/html/index.html

CentOS 7 LVS+Keepalived 实现 Nginx 的高可用以及负载均衡
修改完访问页面如下:
CentOS 7 LVS+Keepalived 实现 Nginx 的高可用以及负载均衡

nginx 两台服务器准备完成,在 LVS01、LVS02 上安装 LVS 以及 keepalived
yum install -y ipvsadm
# 安装 keepalived 依赖的软件
yum install -y gcc openssl openssl-devel
yum install -y keepalived

安装完成以后,LVS01 上先清空 keepalived 的配置文件
:>/etc/keepalived/keepalived.conf
复制下面内如到 /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs_clu_1
}
virrp_sync_group Prox {
group {
mail
}
}
vrrp_instance mail {
state MASTER
interface eno16777736
lvs_sync_daemon_interface eno16777736
virtual_router_id 50
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.253
}
}
virtual_server 192.168.1.253 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 0
protocol TCP
nat_mask 255.255.255.0 
real_server 192.168.1.87 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.88 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}

在 LVS02 上也先清空 keepalived 的配置文件
:>/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lvs_clu_1
}
virrp_sync_group Prox {
group {
mail
}
}
vrrp_instance mail {
state BACKUP
interface ens33
lvs_sync_daemon_interface ens33
virtual_router_id 50
priority 60
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.253
}
}
virtual_server 192.168.1.253 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 0
protocol TCP
real_server 192.168.1.87 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.88 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}

配置完成以后在两台机器上启动 keepalived
注意 interface 需要修改为自己电脑的网卡

systemctl start keepalived

三、测试结果
1、正常情况下

CentOS 7 LVS+Keepalived 实现 Nginx 的高可用以及负载均衡

2、当 nginx01 宕机以后(在 nginx01 上执行命令),结果如图:

systemctl stop nginx.service

CentOS 7 LVS+Keepalived 实现 Nginx 的高可用以及负载均衡

nginx01 启动以后,在 nginx02 上停止 nginx,效果雷同,不在贴图。
3、当 LVS01 上 keepalived 死掉以后,LVS02 上的 keepalived 会启动配置 VIP 到自己机器上
systemctl stop keepalived

CentOS 7 LVS+Keepalived 实现 Nginx 的高可用以及负载均衡

CentOS 7 LVS+Keepalived 实现 Nginx 的高可用以及负载均衡

CentOS 7 LVS+Keepalived 实现 Nginx 的高可用以及负载均衡

结果显示正常,LVS01 上 keepalived 启动以后会把 VIP 配置到自己的网卡。

四、问题总结:
关于 keepalived 配置文件中相关参数说明
persistence_timeout 0 #保持客户端的请求在这个时间段内全部发到同一个真实服务器,单位秒,动态
网站此参数很重要。
router_id LVS_DEVEL # 设置 lvs 的 id,在一个网络内应该是唯一的
vrrp_instance VI_1 {#vrrp 实例定义部分
    state MASTER #设置 lvs 的状态,MASTER 和 BACKUP 两种,必须大写
    interface eno16777736 #设置对外服务的接口
    lvs_sync_daemon_inteface    #负载均衡器之间的监控接口,类似于 HA HeartBeat 的心跳线。但它的机制优于 Heartbeat,因为它没有“裂脑”这个问题,它是以优先级这个机制来规避这个麻烦的。在 DR 模式中,lvs_sync_daemon_inteface 与服务接口 interface 使用同一个网络接口。
    virtual_router_id 60 #设置虚拟路由标示,这个标示是一个数字,同一个 vrrp 实例使用唯一标示
    priority 80 #定义优先级,数字越大优先级越高,在一个 vrrp——instance 下,master 的优先级必须大于 backup
    advert_int 1 #设定 master 与 backup 负载均衡器之间同步检查的时间间隔,单位是秒
    authentication {#设置验证类型和密码
        auth_type PASS #主要有 PASS 和 AH 两种
        auth_pass 1111 #验证密码,同一个 vrrp_instance 下 MASTER 和 BACKUP 密码必须相同
    }
    virtual_ipaddress {#设置虚拟 ip 地址,可以设置多个,每行一个
        192.168.1.253
    }
}
 
virtual_server 192.168.1.253 80 {#设置虚拟服务器,需要指定虚拟 ip 和服务端口
    delay_loop 3 #健康检查时间间隔
    lb_algo rr #负载均衡调度算法
    lb_kind DR #负载均衡转发规则
    persistence_timeout 50 #设置会话保持时间,对动态网页非常有用
    protocol TCP #指定转发协议类型,有 TCP 和 UDP 两种
 
    real_server 192.168.1.87 80 {#配置服务器节点 1,需要指定 real server 的真实 IP 地址和端口
    weight 1 #设置权重,数字越大权重越高
    TCP_CHECK {#realserver 的状态监测设置部分单位秒
            connect_timeout 3 #超时时间
            nb_get_retry 3 #重试次数
            delay_before_retry 3 #重试间隔
            connect_port 80    #监测端口
    }

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142711.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3766字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7970076
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...