您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

LVS+Keepalived+Nginx高可用分布式集群

时间:2020-06-04 10:17:22  来源:  作者:

LVS简介

LVSlinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。

准备工作

  • 首先准备2台主机,3个ip,其中一个ip做虚拟ip
LVS+Keepalived+Nginx高可用分布式集群

 

安装及配置

  • yum方式安装yum install lvs
    ipvsadm -Ln查看是否安装成功
  • 配置配置脚本lvs.sh,执行lvs.sh start。
#!/bin/bash  
# description: Config realserver  
LVS_VIP=192.168.20.227 
source /etc/rc.d/init.d/functions  
case "$1" in  
start)  
       /sbin/ifconfig lo:0 $LVS_VIP netmask 255.255.255.255 broadcast $LVS_VIP  
       /sbin/route add -host $LVS_VIP dev lo:0 
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce  
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore  
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce  
       sysctl -p >/dev/null 2>&1  
       echo "RealServer Start OK"  
       ;;  
stop)  
       /sbin/ifconfig lo:0 down  
       /sbin/route del $LVS_VIP >/dev/null 2>&1  
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce  
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore  
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce  
       echo "RealServer Stoped"  
       ;;  
*)  
       echo "Usage: $0 {start|stop}"  
       exit 1  
esac  
exit 0  

Keepalived简介

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

安装及配置

  • yum方式安装
yum install keepalived
#Keepalived 相关操作命令
#启动Keepalived
systemctl start keepalived
#关闭Keepalived
systemctl start keepalived
#重启Keepalived
systemctl restart keepalived
#查看状态Keepalived
systemctl status keepalived
  • 配置

编辑vi 
/etc/keepalived/keepalived.conf文件,编辑完成后重启keepalived生效

! Configuration File for keepalived
global_defs {
   notification_email {
       wangzhiyuan@hec.cn
   }
   #notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.20.229  #本机ip
   smtp_connect_timeout 30
   router_id LVS_DEVEL_229
   vrrp_skip_check_adv_addr
   script_user root
   enable_script_security
   #vrrp_strict
   #vrrp_garp_interval 0
   #vrrp_gna_interval 0
}
vrrp_script chk_Nginx {
   script "/etc/keepalived/nginx_check.sh"  #检测nginx进程是否存在脚本
   interval 1
}
vrrp_instance VI_1 {
    state MASTER/BACKUP  #MASTER:主  BACKUP:从
    interface ens160    #网卡
    virtual_router_id 51   #主从两台配置id需一致
    priority 100      #优先级  主优先级设置比从优先级高
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keepnginx   #密码  主从两台主机配置需一致
    }
    virtual_ipaddress {
        192.168.20.227    #虚拟ip
    }
    track_script {
        chk_nginx
    }
}
virtual_server 192.168.20.227 80 {   #lvs负载端口
    delay_loop 6
    lb_algo wrr     #负载均衡算法
    lb_kind DR
    persistence_timeout 0
    protocol TCP
   
    real_server 192.168.20.229 80 {  #真实ip及端口 
        weight 1
        TCP_CHECK {
            connection_timeout 5
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
    real_server 192.168.20.228 80 {  #真实ip及端口 
        weight 1
        TCP_CHECK {
            connection_timeout 5
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}
  • nginx检测脚本
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
        serivce keepalived stop
fi


Tags:LVS   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
今天总结一下负载均衡中LVS与Nginx的区别,好几篇博文一开始就说LVS是单向的,Nginx是双向的,我个人认为这是不准确的,LVS三种模式中,虽然DR模式以及TUN模式只有请求的报文经过Director,但是NAT模式,Real Server回复的...【详细内容】
2021-06-08  Tags: LVS  点击:(114)  评论:(0)  加入收藏
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。三种LVS负载均衡模式1.LVS-NAT 模式网络地址转换,工作在网络层(三层),只有VIP是公网IP,其余都...【详细内容】
2021-04-14  Tags: LVS  点击:(230)  评论:(0)  加入收藏
本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR)的工作原理,以及它们的优缺点。1.前言我们先分析实现...【详细内容】
2021-03-11  Tags: LVS  点击:(104)  评论:(0)  加入收藏
在最开始呢,咱们先说一下什么叫负载均衡,负载均衡呢,就是将一批请求,根据请求的内容,分发到不同的后端去进行相应的处理,从而提供负载分担,主备切换等功能。 对于不同的负载均衡软...【详细内容】
2020-10-30  Tags: LVS  点击:(118)  评论:(0)  加入收藏
LVS简介LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集...【详细内容】
2020-06-04  Tags: LVS  点击:(67)  评论:(0)  加入收藏
1. Linux Virtual Server项目针对高可伸缩、高可用网络服务的需求,我们给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器...【详细内容】
2019-10-10  Tags: LVS  点击:(124)  评论:(0)  加入收藏
一、轮叫调度(Round­Robin Scheduling )(1)轮叫的方式依次将请求调度不同的服务器(2)算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。二、加...【详细内容】
2019-09-25  Tags: LVS  点击:(143)  评论:(0)  加入收藏
当前大多数的互联网系统都使用了服务器集群技术,集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务。 图片来自 Unsplash这些集群可以是 Web 应用服务器集...【详细内容】
2019-08-03  Tags: LVS  点击:(239)  评论:(0)  加入收藏
一、Nginx优点:1、工作在网络7层之上,可针对http应用做一些分流的策略,如针对域名、目录结构,它的正规规则比HAProxy更为强大和灵活,所以,目前为止广泛流行。2、Nginx对网络稳定性...【详细内容】
2019-07-31  Tags: LVS  点击:(187)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(12)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(27)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(56)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条