nginx负载均衡及keepalive高可用

实验前期准备:

5台虚拟机:4台当做服务器,1台当做客户机(当然,也可以使用主机的浏览器),4台服务器中,2台服务器当做后端真实访问服务器;另外2台服务器当做负载均衡服务器。

并且关闭所有防火墙及核心防护

复制代码
systemctl stop firewalld
setenforce 0

后端真实服务器1:

复制代码
yum -y install epel-release
yum -y install nginx
echo '自定义内容1'>/usr/share/nginx/html/index.html
systemctl start nginx
curl 127.1	#查看nginx内容

自定义访问内容

后端真实服务器2:

复制代码
yum -y install epel-release
yum -y install nginx
echo '自定义内容2'>/usr/share/nginx/html/index.html
systemctl start nginx
curl 127.1	#查看nginx内容

自定义访问内容(建议2者不要一样,方便可以观察变化)

负载均衡器1:

复制代码
yum -y install epel-release
yum -y install nginx
vim /etc/nginx/nginx.conf
[#http模块下
upstream web {
server 真实服务器1;
server 真实服务器2;
}

#server模块下
location / {
proxy_pass http://web;
}
]
systemctl start nginx

先做好负载均衡可以使用 'curl 127.1' 命令,查看是否是真实服务1,2的自定义内容。

复制代码
yum -y install keepalive
vim /etc/keepalive/keepalive.conf
[
global_defs {
   router_id LVS_01
   #vrrp_strict
}

vrrp_script check_down {
        script  "/etc/keepalived/ng.sh"
        interval 1
        weight -30
        fall  3
        rise 2
        timeout 2
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 50
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.174.188
    }
    track_script {
    check_down
    }
}
]
vim /etc/keepalived/ng.sh
{
killall -0 nginx
}
systemctl start keepalived.service
systemctl start nginx.service

主配置内容:

全局配置:自定义当前路由器唯一标识符为"LVS_01" ;注释掉严格模式检查。

vrrp健康检查:健康检查路径;每秒执行一次;当脚本检测失败优先级降低30;连续3次失败,鉴定为故障;连续2次成功,鉴定为恢复正常;脚本执行等待时间为2秒。

vrrp配置:初始为主设备;使用ens33网卡;虚拟路由组为50(主从一致);起始优先级为100;vrrp通告间隔为1秒;认证设置为密码认证,密码为1111(主从一致);定义的虚拟IP地址为192.168.174.188;关联的健康检查脚本为check_down。

负载均衡器2:

复制代码
yum -y install epel-release
yum -y install nginx
vim /etc/nginx/nginx.conf
[#http模块下
upstream web {
server 真实服务器1;
server 真实服务器2;
}

#server模块下
location / {
proxy_pass http://web;
}
]
systemctl start nginx

先做好负载均衡可以使用 'curl 127.1' 命令,查看是否是真实服务1,2的自定义内容。

复制代码
yum -y install keepalive 
vim /etc/keepalive/keepalive.conf
[
global_defs {
   router_id LVS_02
   #vrrp_strict
}

vrrp_script check_down {
        script  "/etc/keepalived/ng.sh"
        interval 1
        weight -30
        fall  3
        rise 2
        timeout 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 50
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.174.188
    }
    track_script {
    check_down
    }
}

]
vim /etc/keepalived/ng.sh
{
killall -0 nginx
}
systemctl start keepalived.service
systemctl start nginx.service

从配置内容:

全局配置:自定义当前路由器唯一标识符为"LVS_02" ;注释掉严格模式检查。

vrrp健康检查:健康检查路径;每秒执行一次;当脚本检测失败优先级降低30;连续3次失败,鉴定为故障;连续2次成功,鉴定为恢复正常;脚本执行等待时间为2秒。

vrrp配置:初始为从设备;使用ens33网卡;虚拟路由组为50(主从一致);起始优先级为99;vrrp通告间隔为1秒;认证设置为密码认证,密码为1111(主从一致);定义的虚拟IP地址为192.168.174.188;关联的健康检查脚本为check_down。

实验验证:

使用浏览器访问192.168.174.188

关闭主配置,再来查看是否对访问造成影响:

此时的从设备:获得了虚拟IP地址

我们重新打开主设备来查看主从的变化:

相关推荐
袁煦丞 cpolar内网穿透实验室1 小时前
出差路上,服务器在我手机里
运维·服务器·docker·容器·智能手机·远程工作·cpolar
小此方1 小时前
Re:Linux系统篇(十三)特别篇: 实现Linux第⼀个系统程序−进度条
linux·运维·服务器
星幻元宇VR2 小时前
VR心理健康学习机|沉浸式心理教育新模式
科技·学习·安全·vr·虚拟现实
夏日听雨眠9 小时前
LInux(逻辑地址与物理地址的区别,文件描述符,lseek函数)
linux·运维·网络
·醉挽清风·9 小时前
学习笔记—MySQL—库表操作
笔记·学习·mysql
哲霖软件10 小时前
ERP 赋能非标自动化行业:破解物料与库存管理难题
运维·自动化
白小沫10 小时前
TortoiseSVN是什么?
学习
火车叼位11 小时前
替代 Tiny Win10 的 Linux 方案:Debian XFCE 精简桌面搭建
linux·运维
weixin_4514315611 小时前
【学习笔记】微博视频页面ajax请求与响应数据分析
笔记·学习·音视频
清辞85312 小时前
尾盘选股法程序开发学习初期
学习