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地址

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

相关推荐
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜5 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB6 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode8 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220708 天前
如何搭建本地yum源(上)
运维
ping某10 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树8811 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠11 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql