; 利用keepalived实现主/从和主/主模式的高性能负载均衡集群 | Linux运维部落

利用keepalived实现主/从和主/主模式的高性能负载均衡集群

要求:

1、使用nginx的反向代理功能实现负载均衡

2、keepalived实现高可用

第一组的虚拟地址为172.16.1.100

D设备的优先级高

第二组的虚拟地址为172.16.1.110

E设备的优先级高

3、分别实现主/从和主/主两种配置

集群拓扑:

第一种:主/从配置

所有配置之前先在各个主机上进行时间同步

ntpdate 时间服务器地址

一、后端real server(A、B、C)配置

1、在A、B、C三台主机上安装httpd包

yum install httpd

2、配置虚拟主机

vim /etc/httpd/conf.d/vir.conf

A主机:

B主机

C主机

3、创建三主机的URL 目录及主页面

A主机

mkdir -pv /data/web/

vim /data/web/index.html

内容为 This is Vhost1

B主机

mkdir -pv /data/web/

vim /data/web/index.html

内容为 This is Vhost2

C主机

mkdir -pv /data/web/

vim /data/web/index.html

内容为 This is Vhost3

注意:三主机主页面不同,是为了后面实验来区分不同的real server

启动httpd服务: systemctl start httpd.service

二、配置负载均衡节点

D(此主机为MASTER)

E(此主机为BACKUP)主机

利用nginx的ngx_http_upsteam_module模块实现负载均衡

1、安装nginx包

在D、E主机上分别安装

yum install nginx

2、配置负载均衡

在D、E主机上分别安装

vim /etc/nginx/nginx.conf

定义websvr组:

upstream websvr {

server 192.168.70.137:80;

server 192.168.70.138:80;

server 192.168.70.140:80;

}

反向代理组 websvr

location / {

proxy_pass http://websvr;

}

三、配置keepalived服务

1、全局配置

主机D上

主机E上配置

2、分别在两个主机上定义脚本 chk_down

此脚本的功能:

文件 /etc/keepalived/down 存在时:虚拟IP转义到另一个节点

vrrp_script chk_down {

script “[[ -f /etc/keepalived/down ]] && exit 1 || exit 0”

interval 1

weight -10

}

3、分别在两个主机上定义脚本 chk_ngx

此脚本功能:

确认nginx服务是否正运行

vrrp_script chk_ngx {

script “killall -0 nginx && exit 0 || exit 1”

interval 1

weight -10

fall 2

rise 1

}

4、vrrp_instance配置

D主机

E主机

5、创建notify警告配置脚本

分别在两个主机上创建

vim /etc/keepalived/notify.sh

chmod +x notify.sh 给予此脚本执行权限

6、启动服务

systemctl start keepalived.service

四、测试

1、不做修改时,即主机D上没有/etc/keepalived/down文件

(1)、查看虚拟IP位置

在主机D上(此主机为MASTER)

在主机E上(此主机为BACKUP)

通过对比可以看到虚拟IP在D主机上

(2)、查看nginx是否启动

通过脚本/etc/keepalived/notify.sh可以看到哪台主机成为MASTER状态,哪台主机就自动启动nginx服务

主机D

主机E

通过对比可以知道主机D上的nginx服务启动,而主机E上的nginx服务为启动

(3)访问URL

curl http:/172.16.1.10

2、在主机D上创建/etc/keepalived/down文件

touch /etc/keepalived/down

(1)、查看虚拟IP位置

在主机D上(此主机为MASTER)

在主机E上(此主机为BACKUP)

通过对比可以看到虚拟IP在E主机上

(2)、查看nginx是否启动

主机D

主机E上

通过对比可以知道主机E上的nginx服务启动,而主机D上的nginx服务为启动

(3)访问URL

curl http:/172.16.1.100

能正常访问,现实了高性能

第二部分实现主/主配置

一、增加配置在D、E主机上

1、 在原有的配置基础上增加一个vrrp_instance配置

在主机D上配置

在主机E上配置

2、修改警告配置脚本

将backup时停止nginx服务改为启动nginx服务

二、检测

1、不做修改时,即主机D和E上都没有/etc/keepalived/down文件

(1)、查看虚拟IP位置

在主机D上

在主机E上

通过对比看到:

虚拟IP:172.16.1.100在主机D上

虚拟IP:172.16.1.110在主机E上

(2)查看nginx服务状态

主机D、E的nginx服务都处于启动状态

(3)访问URL

curl http:/172.16.1.100

curl http:/172.16.1.110

能正常访问,现实了高性能

2、在主机D上创建/etc/keepalived/down文件

(1)、查看虚拟IP位置

在主机D上

在主机E上

通过对比看到:

虚拟IP:172.16.1.100在主机E上

虚拟IP:172.16.1.110在主机E上

(2)查看nginx服务状态

主机D、E的nginx服务都处于启动状态

(3)访问URL

curl http:/172.16.1.100

curl http:/172.16.1.110

能正常访问,现实了高性能

 

3、在主机E上创建/etc/keepalived/down文件

(1)、查看虚拟IP位置

在主机D上

在主机E上

通过对比看到:

虚拟IP:172.16.1.100在主机D上

虚拟IP:172.16.1.110在主机D上

(2)查看nginx服务状态

主机D、E的nginx服务都处于启动状态

(3)访问URL

curl http:/172.16.1.100

curl http:/172.16.1.110

能正常访问,现实了高性能

 

原创文章,作者:zq,如若转载,请注明出处:/78548

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1660809109@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达娱乐注册  万达娱乐平台  万达娱乐招商  万达娱乐招商QQ  万达娱乐主管QQ  万达直属  万达娱乐注册  万达娱乐主管  万达登录  万达招商QQ