Nginx+keepalived实现高可用负载群集

2023-12-20 02:36:37

实现方式

使用Nginx作为负载调度器,通过四层代理转发给web器处理请求,实现负载均衡;

在Nginx调度器上配置脚本监控(健康检查),实现主备热备份,当主失效切换至备工作。

实验

实验准备

Web 服务器1:192.168.75.50(VIP 192.168.75.111)
Web 服务器2:192.168.75.60(VIP 192.168.75.111)

Nginx+keepalived 主负载调度器:192.168.75.30(VIP 192.168.75.111)

Nginx+keepalived 备负载调度器:192.168.75.80(VIP 192.168.75.111)

客户端(本机):192.168.75.1

?实验步骤

配置Nginx主备负载调度器

两台都用yum安装Nginx服务(使用编译安装需要加上--with-stream模块)和keepalived服务

vim /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
 
#yum下载
yum install -y nginx
 
yum install -y keepalived

修改主调度器nginx配置文件

?修改主调度器keepalived配置文件

?编写监控脚本

在主调度器keepalived的配置中添加指定脚本文件

将以上配置文件复制到备服务器对应目录下进行修改(nginx配置不变)

?

两边都启动nginx和keepalived服务

systemctl start nginx
systemctl start keepalived

?

?查看第一台web服务器的网卡配置(192.168.75.50)

虚拟网卡成功添加

关闭第一台web服务器的keepalived服务,查看vip是否漂移到第二台备服务器上(192.168.75.60)

成功漂移

配置两台节点服务器

下载http服务

关闭安全机制
systemctl stop firewalld
setenforce 0
下载开启httpd
yum -y install httpd
systemctl start httpd

?在两台web服务器的/var/www/html路径下分别添加网页配置文件

第一台(192.168.75.50)

第二台(192.168.75.60)

?

给两台web服务器添加vip (两台一样)

vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.75.111
NETMASK=255.255.255.255
 
service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
route add -host 192.168.75.111 dev lo:0

?

配置内核文件(两台一样)

vim /etc/sysctl.conf
 
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
 
sysctl -p

?

实验测试

在客户端访问 http://192.168.75.111:9527

?

?

文章来源:https://blog.csdn.net/weixin_72625764/article/details/135093132
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。