单主模型的IPVS高可用和nginx+keepalived的双主高可用模型

一、IPVS的单主高可用

(1)配置RS,我们使用两台服务器作为RS服务器配置过程我们可以使用脚本来配置,这样当我们完成试验后便于卸载,脚本如下:

#!/bin/bash
#
vip=192.168.125.198 #你用的虚拟路由的IP地址
case $1 in
start)

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev lo:0
;;
stop)
ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac

接下来我们可以配置keepalived服务器两台服务器配置大多是相通的,只需修改少量配置参数即可[email protected] keepalived]# vim /etc/keepalived/keepalived.conf! Configuration File for keepalived

#全局配置段
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 15
router_id node1
vrrp_mcast_group4 224.0.192.100
}

#配置虚拟IP
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 11
priority 100

advert_int 1
authentication {
auth_type PASS
auth_pass 11111111
}
virtual_ipaddress {
192.168.125.198/24 dev ens33 label ens33:0
}
track_interface {
ens33
}

notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}

vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 21
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 18181818
}
virtual_ipaddress {
192.168.125.199/24 dev ens33
}
track_interface {
ens33
}

notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"

}
#定义虚拟服务器
virtual_server 192.168.125.198 80 {
delay_loop 2
lb_kind DR
lb_algo rr
protocol TCP
sorry_server 127.0.0.1 80

real_server 192.168.125.156 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}

nb_get_retry 3
delay_before_retry 1
connect_timeout 3
    }
}
real_server 192.168.125.157 80 {
weight 2
HTTP_GET {
url {
path /
status_code 200
}

nb_get_retry 3
delay_before_retry 1
connect_timeout 3
        }
    }
}

最后完成测试即可;

二、keepalived+nginx的高可用集群服务

(1)分析:在做此实验时我们不仅要监控节点我们还需要监控节点上nginx是否可用,这就需要我们调用脚本来监控他们,首先我们做通知脚本示例如下:

#!/bin/bash
#实现通知脚本

contact=‘[email protected]‘

notify() {
local mailsubject="$(hostname) to be $1, vip floating"
notify() {
local mailsubject="$(hostname) to be $1, vip floating"
echo "$mailbody" | mail -s "$mailsubject" $contact
}

case $1 in
master)
notify master
;;
backup)
notify backup
systemctl restart nginx
;;
fault)
notify fault
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac

(2) 脚本调用方法如下:

第一步将脚本放在/etc/keepalived/下并给执行权限
第二步编辑配置文件:vim /etc/keepalived/keepalived.conf
第三步:在vrrp_instance 的上下文编写如下语句:
track_interface {
ens33
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"

(3)接着我们要完成脚本监控nginx服务:

keepalived调用外部辅助脚本进行资源监控,并根据监控的结果状态能实现优先级的动态调整:

  分两步: (1)先定义一个脚本
           (2)调用此脚本

vrrp_script <SCRIPT_NAME> {
      script “”
      interval INT #返回值0或者1
      weight -INT
    }
    track_script {
      SCRIPT _NAME_1
      SCRIPT_NAME_2
      ..... 

    }  

  最后我们在上一个脚本的backup下加一行重启nginx服务的命令就可以起到一定的排错能力,如果是nginx服务听了他可以自动帮我们讲服务重启。

(4)接着我们要配置nginx的反代服务这个是在keepalived的两台服务器上做:

编辑代理服务器nginx的主配置文件:vim /etc/nginx/nginx.conf
在http上下文编辑:
upstream websrvs {
server 192.168.125.156:80 weight=1;
server 192.168.125.157:80 weight=1;
}

记着:nginx -s reload
在server段的location中写下:proxy_pass http://websrvs;

(5)接着编辑反代服务器的keepalived 文件:

! Configuration File for keepalived

global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 15
router_id node1
vrrp_mcast_group4 224.0.192.100
}
vrrp_script chk_nginx {
script "killall -0 nginx"
interval 1
weight -5
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 11
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 11111111
}
virtual_ipaddress {
192.168.125.198/24 dev ens33 label ens33:0
}
track_interface {
ens33
}
track_script {
chk_nginx
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}

vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 21
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass 18181818
}
virtual_ipaddress {
192.168.125.199/24 dev ens33
}
track_interface {
ens33
}
track_script {
chk_nginx
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"

}

  

另一个发代节点也这样编辑就可以完成然后启动keepalived服务即可。

  

  

原文地址:https://www.cnblogs.com/sanqianfanhua01/p/9094112.html

时间: 2024-08-04 00:59:34

单主模型的IPVS高可用和nginx+keepalived的双主高可用模型的相关文章

Nginx+keepalived构建双主负载均衡代理服务器

引言 Nginx是一个高性能的代理服务器,单台Nginx容易出现单点故障,使用keepalived可以实现Nginx的故障转移,保证了网站的高可用性 一.使用Nginx+keepalived的两种方案 1.主从模式 使用一个VIP,前端有2台服务器,一主一从,正常情况下是主服务器提供服务只有当主服务器不能正常提供服务之后,从服务器才提供服务,此时总会有一台服务器是空闲状态. 2.双主模式 使用两个VIP,前段有2台服务器,互为主从,两台服务器同时工作,不存在资源浪费情况.同时在前段的DNS服务器

nginx+keepalived(双主)

一.环境 nginx1   192.168.40.211 nginx2   192.168.40.132 vip1     192.168.40.223  主为keep1,从为keep2 vip2     192.168.40.222  主为keep2,从为keep1 (此处安装过程皆采用yum方式,不作累述) 二.keepalived配置文件 nginx1 vi /etc/keepalived/keepalived.conf global_defs { notification_email {

keepalived基于双主模型实现nginx的高可用(2)

Keepalived: keepalived是基于vrrp协议实现的一个高可用集群解决方案,可以利用keepalived来解决单点故障问题,使用keepalived实现的高可用集群方案中,一般有两台服务器,一个是MASTER(主服务器),另一个是BACKUP(备用服务器),这个集群中对外提供一个虚拟IP,MASTER服务器会定时发送特定信息给BACKUP服务器,当BACKUP服务器接收不到MASTER发送的消息时,BACKUP服务器会接管虚拟IP,继续提供服务. 当keepalived基于主备模

【 Linux 】Keepalived实现双主模型高可用集群

要求:    1. 两台web服务器安装wordpress,数据库通过nfs共享    2. 使用keepalived实现双主模型 环境:    主机:        系统:CentOS6.7 x64        1. node1: 192.168.2.11  node2: 192.168.2.12 vip: 192.168.2.200        service iptables stop        selinux: disabled 一.两台主机分别配置lamp架构,并使用nfs实现

LVS基础及LVS+Keepalived实现双主高可用负载均衡

LVS基础及LVS+Keepalived实现双主高可用负载均衡 LB集群: (Load  Balancing)即负载均衡集群,其目的是为了提高访问的并发量及提升服务器的性能,其    实现方式分为硬件方式和软件方式. 硬件实现方式: 常用的有 F5公司的BIG-IP系列.A10公司的AX系列.Citrix公司的 NetScaler系列等 软件实现方式: LVS工作于传输层.nginx工作于应用层.haproxy工作于传输层和应用层 本文主要讲解LVS. 一.什么是LVS ? 1. LVS:(Li

Keepalived+Haproxy双主高可用负载均衡web和mysql综合实验

日期及版本:2014.5.4v1.0 架构图 实验目的: 1.Haproxy+Keepalived双主双机高可用模型,keepalived为Haproxy主从提供高可用保证haproxy-master若挂掉haproxy-backup能无缝接管,haproxy为后端Web提供负载均衡,缓解并发压力,实现WEB站点负载均衡+高可用性: 2. Haproxy反代web做动静分离: 3. Haproxy反代mysql 算法leastconn和roundrobin的不同效果: 系统环境: OS:cent

MySQL 高可用之 keepalived+Mysql 双主双活。

环境描述:[[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) IP 规划:MySQL-M 192.168.10.10 MySQL-S 192.168.10.20 配置两服务服务器双主: MySQL 安装: [[ema

Nginx +keepalived+varnish+lamp实现高可用、负载均衡集群

描述:1.前端两台NGINX,通过keepalived虚拟IP漂移,实现前端两台NGINX高可用:2.利用NGINX反向代理功能对后端varnish实现高可用集群, 3.再通过varnish实现动静分离 注:1.先装Nginx +keepalived2.装varnish3.装lamp需要6台虚拟机(100-101装Nginx +keepalived:100主,101备)需要联网(102-103装varnish)需要联网(104-105装lamp)需要联网 所有主机必做的步骤 systemctl

keepalived+mysql双主

       mysql高可用keepalived+mysql双主 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 本节主要介绍了利用 keepalived 实现 MySQL 数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配