负载均衡权重和安装、配置、使用keepalived负载均衡权重

权重:

weight:

谁的值越高,访问谁的概率就越高

访问到100 的概率是70%

访问到101 的概率是30%

Iphash

根据访问的ip地址算出hash,根据hash分配服务器,以后每次访问的时候都值指向第一个访问的那个服务器

Url_hash

根据路径去算出hash

用hash去分配服务器

keepalived

keepalived:保活,如果一台服务器突然宕机,会立马切换到另一台服务器上,也就是把原来的主服务器换成备用服务器,会提供一个虚拟ip

安装keepalived
yum -y install keepalived

完毕!之后

配置keepalived

用查找命令找到 keepalived.conf文件

find / -name keepalived.conf

找到后进入到conf文件里

将里面的内容清空

把我们的代码放进去

# 全局配置
global_defs { 
   #设置报警邮件地址,可以设置多个,可以不设置
   notification_email {
     2@qq.com
   }
   #发送通知邮件时邮件源地址
   notification_email_from 1@163.com   
   # 发送email时使用的smtp服务器地址,这里可以用本地的sendmail来实现
   smtp_server smtp.163.com
   #连接smtp连接超时时间
   smtp_connection_timeout 30 
   #定义路由标识信息,相同局域网唯一,ip地址
   router_id 192.168.227.99
   script_user root
}
​
# 检测脚本
vrrp_script chk_http_port {
   # 脚本路径
   script "/opt/keepalived/nginx_check.sh"
   #(检测脚本执行的间隔,单位是秒)
   interval 2
   # 当检查失败后,将vrrp_instance的priority减小5
   weight -5
   # 连续监测失败3次,才认为真的健康检查失败。并调整优先级
   fall 3
   # 连续监测2次成功,就认为成功。但不调整优先级
   rise 2 
}
​
​
  
vrrp_instance VI_1 { 
    # 指定keepalived的角色,MASTER为主,BACKUP为备,大写
    state MASTER
    # 当前进行vrrp通讯的网络接口卡(当前centos的网卡)
    interface ens32
    # 虚拟路由编号0-255,主、备机的 virtual_router_id 必须相同
    virtual_router_id 51
    # 主、备机取不同的优先级,主机值较大,备份机值较小
    priority 100
    # 检查间隔,默认为1s(vrrp组播周期秒数)
    advert_int 1
    #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
    authentication { 
        auth_type PASS 
        auth_pass 1111 
    } 
    
    # 定义虚拟ip(VIP),可多设,每行一个
    virtual_ipaddress {         
        192.168.227.120
    } 
    
    # 执行检测脚本
    track_script{
        chk_http_port
    }
}

要注意的地方,这些地方要切换为自己的

配置好之后,我们要编写我们上面指定路径的脚本,创建我们这个路径的文件夹和文件

[root@localhost keepalived]# mkdir -p /opt/keepalived
[root@localhost keepalived]# cd /opt/keepalived/
[root@localhost keepalived]# touch nginx_check.sh

创建好文件后编写sh脚本

编写nginx_check.sh文件
#!/bin/bash
​
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
    /opt/nginx/nginxserver/sbin/nginx
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];
    then
        killall keepalived
    fi
fi

因为脚本里包含了killall,所以我们需要安装一下killall

安装killall
yum -y install psmisc

sh文件编写完毕,killall也安装完毕

给sh脚本文件权限,直接给最高权限777

 chmod 777 nginx_check.sh 

给了之后他的颜色会是绿色的

都弄完之后就要再去克隆一个虚拟机,因为我们的目的是如果第一个服务器宕机之后会立马切换到另一个服务器上,所以我们还需要一个虚拟机,而克隆的虚拟机就是从,我们配好的这个就是主

克隆虚拟机

右键虚拟机,点击管理,点击克隆,前提是虚拟机必须是关机状态

点击下一页下一页

修改名字,存放的路径

注意:两个虚拟机不要放在一个文件夹里,可以在一个文件夹里放两个文件夹,然后两个文件夹里是各个虚拟机就可以

创建好之后,打开我们克隆的虚拟机,因为是克隆的,所以不需要安装东西,但是需要修改一下ip地址和配置文件里的路径即可

配置虚拟机

修改ip地址

因为克隆的虚拟机和我们的虚拟机ip一样

cd /etc/sysconfig/network-scripts    vim ifcfg-ens32

找到ipaddr,修改ip

修改最后一位即可

重新联网

systemctl restart network
修改keepalived配置

进入keepalived.config文件里

cd /etc/keepalived          vim keepalived.conf

修改配置

两个虚拟机的keepalived都配置好后

启动

启动两台虚拟机的nginx

启动两台虚拟机的keepalived

启动主的nginx和keepalived

启动从的nginx和keepalived

启动另外两台虚拟机的jar包

全部启动完之后去访问我们在keepalived上的虚拟ip地址

去浏览器

访问成功后直接用finalshell去连接我们这个虚拟ip

可以看到现在连着的是主服务器的ip,而且也有他自己的虚拟ip地址

如果这时我们的99虚拟机突然宕机,我们虚拟的也就是120重新在finalshell重新连接之后就会发现,他的ip就会变成我们另一台服务器,也就是从的ip地址,都是为了防止服务器突然宕机

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值