linux集群

在两台机器上安装keepalived:

yum install -y keepalived

keepalived+nginx实现web高可用:
vip:虚拟ip,当master宕机后,vip被分配到backup上。
编辑160主机的keepalived配置文件:

vim /etc/keepalived/keepalived.conf

global_defs {
   notification_email {
     aming@aminglinux.com
   }
   notification_email_from root@aminglinux.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux>com
    }
    virtual_ipaddress {
        192.168.247.180
    }

    track_script {
        chk_nginx
    }

}

定义监控nginx服务的脚本,如下:

vim /usr/local/sbin/check_ng.sh

#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
        /etc/init.d/nginx start
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

增加权限:

chmod a+x /usr/local/sbin/check_ng.sh

启动:

systemctl start keepalived

接下来配置backup:

vim /etc/keepalived/keepalived.conf 

global_defs {
   notification_email {
     aming@aminglinux.com
   }
   notification_email_from root@aminglinux.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux>com
    }
    virtual_ipaddress {
        192.168.247.180
    }

    track_script {
        chk_nginx
    }

}

配置监控脚本:

vim /usr/local/sbin/check_ng.sh
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
        systemctl start nginx
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

增加权限:

 chmod a+x /usr/local/sbin/check_ng.sh

启动keepalived:

systemctl start keepalived

搭建负载均衡集群:

lvs:主要分为三种类型:nat,ip隧道,dr
lvs的调度算法:
1.轮询调度:
按顺序把请求一次发送给后端的服务器
2.带权重的轮询调度:
权重越高的服务器被分配到的请求就越多
3.最小连接调度:
这种算法会根据各真实服务器上的连接数来决定把新的请求分配给谁
4.带权重的最小连接调度:
可以认为的控制哪些服务器多分配请求
5。基于局部性的最小连接调度:
简称lblc,是针对请求报文的目标ip地址负责均衡调度
6.带复制的基于局部性最少链接调度:
lblcr,与lblc不同的是,它要维护从一个ip到一组服务器的映射
7.目标地址散列调度:
静态映射算法
8.源地址散列调度:
与目标地址散列调度相反

nat模式搭建lvs:

清空防火墙,并保存
在调度器上安装ipvsadm:

yum install -y ipvsadm

编写一个脚本:

vim /usr/local/sbin/lvs_nat.sh
#! /bin/bash
# director 服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
# 注意区分网卡名字,阿铭的两个网卡分别为ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
# director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.188.0/24  -j MASQUERADE
# director设置ipvsadm
IPVSADM='/usr/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.147.144:80 -s wlc -p 300
$IPVSADM -a -t 192.168.147.144:80 -r 192.168.188.129:80 -m -w 1
$IPVSADM -a -t 192.168.147.144:80 -r 192.168.188.127:80 -m -w 

执行:

   bash /usr/local/sbin/lvs_nat.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值