【实验环境】

  • Centos 7.2
  • Nginx 

以下为本次试验所使用的地址:

  • VIP:192.168.136.100
  • LVS-1:192.168.136.170
  • LVS-2:192.168.136.166

【安装】

在两个节点上安装lvs、keepalived(提前已经安装好nginx)

yum install ipvsadm keepalived -y

设置配置脚本

vim ipvsadm.sh

#!/bin/bash

vip=...
ifconfig lo: $vip broadcast $vip netmask ... up
route add -host $vip dev lo:
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null >&

执行脚本(在两台lvs主机上执行脚本)

sh ipvsadm.sh

查看是否设置成功

[root@localhost /]# ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen
link/loopback ::::: brd :::::
inet .../ scope host lo
valid_lft forever preferred_lft forever
inet 192.168.136.100/32 brd 192.168.136.100 scope global lo:0
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever

【设置Keepalived】

主节点(Master),清空文件内容

vim /etc/keepalived/keepalived.conf

global_defs{
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.136.100
}
} virtual_server 192.168.136.100 {
delay_loop
lb_algo rr
lb_kind DR
persistence_timeout
protocol TCP real_server 192.168.136.170 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
} real_server 192.168.136.166 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}

从节点(Backup),清空文件内容

vim /etc/keepalived/keepalived.conf

global_defs{
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.136.100
}
} virtual_server 192.168.136.100 {
delay_loop
lb_algo rr
lb_kind DR
persistence_timeout
protocol TCP real_server 192.168.136.170 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
} real_server 192.168.136.166 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}

主节点和从节点的区别

主节点:MASTER
从节点:BACKUP
state MASTER -> state BACKUP 主节点优先级:
从节点优先级:
priority -> priority 另外:注意interface ens33,其中ens33是网卡名称,根据自己主机情况进行修改

开启路由转发

一次性开启:
echo "">/proc/sys/net/ipv4/ip_forward 永久性开启:
vim /etc/sysctl.conf
#添加
net.ipv4.ip_forward=
退出保存 #配置生效
sysctl -p

启动Keepalived(先主后从顺序开启)

systemctl start keepalived.service

查看是否开启成功

[root@localhost /]# ipvsadm -ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.136.100: rr
-> 192.168.136.166: Route
-> 192.168.136.170: Route

打开浏览器输入VIP地址查看,是否成功,如果访问成功尝试断开其中某台,看是否会自动切换另外一台服务器进行访问。

Centos 7.x 设置Lvs+ Keepalived的更多相关文章

  1. Linux CentOs集群LVS+Keepalived负载均衡的实现

    准备工作 环境:Win10下Centos6.4虚拟机. 负载均衡:两台(一主一备)  LVS + Keepalived. HTTP服务器:3台. 给每台服务器配置IP 1.VIP(virtual ip ...

  2. CentOS高可用集群LVS+Keepalived(DR模式)

    操作系统:CentOS6.5_x64 mini 负载均衡模式:DR(直接路由) LVS与Keepalived简述: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是 ...

  3. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...

  4. 配置LVS + Keepalived高可用负载均衡集群之图文教程

    负载均衡系统可以选用LVS方案,而为避免Director Server单点故障引起系统崩溃,我们可以选用LVS+Keepalived组合保证高可用性.  重点:每个节点时间都同步哈! C++代码 [r ...

  5. lvs+keepalived

    一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...

  6. lvs+keepalived 负载均衡

    LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器.目前有三种IP负 载均衡技术(VS/NAT.VS/T ...

  7. 借助LVS+Keepalived实现负载均衡(转)

    原文:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务 ...

  8. LVS+Keepalived实现MySQL从库读操作负载均衡

    http://www.osyunwei.com/archives/7464.html (学习运维知识好站) 说明: 操作系统:CentOS 5.X 64位 MySQL主服务器:192.168.21.1 ...

  9. 基于VMware的虚拟Linux集群搭建-lvs+keepalived

    基于VMware的虚拟Linux集群搭建-lvs+keepalived 本文通过keepalived实现lvsserver的的双机热备和真实server之间的负载均衡.这方面的blog挺多,可是每一个 ...

随机推荐

  1. 最小轻量级的Istio来了,仅使用流量治理能力

    Istio 1.0.1作为8月份的版本已经发布,主要修复了1.0版本发布以来发现的一些关键Issue.官网的release note(https://istio.io/about/notes/1.0. ...

  2. RabbitMQ消息队列入门(一)——RabbitMQ消息队列的安装(Windows环境下)

    一.RabbitMQ介绍1.RabbitMQ简介RabbitMQ是一个消息代理:它接受和转发消息.你可以把它想象成一个邮局:当你把你想要发布的邮件放在邮箱中时,你可以确定邮差先生最终将邮件发送给你的收 ...

  3. NEST指定id

    1.默认以Id属性为Id,无Id属性则自动生成 2.可通过属性标签指定Id [ElasticsearchType(IdProperty = nameof(last_name))] public cla ...

  4. 笔记 - C#从头开始构建编译器 - 2

    视频与PR:https://github.com/terrajobst/minsk/blob/master/docs/episode-02.md 作者是 Immo Landwerth(https:// ...

  5. vue组件上动态添加和删除属性

    1.vue组件上动态添加和删除属性 // 添加 this.$set(this.obj, 'propName', val) // 删除 this.$delete(this.obj, 'propName' ...

  6. win10重装系统修改信息

    在安装win10系统之前要先进行ahci硬盘模式更改 ,以防止win10系统安装完成后出现蓝屏现象,那么如何进行ahci硬盘模式bios设置呢?今天我们就以映泰主板为大家介绍u盘装win10系统硬盘模 ...

  7. Feign报错'xx.FeignClientSpecification', defined in null, could not be registered.

    解决: 在application.yml中配置: spring: main: allow-bean-definition-overriding: true 参考:https://blog.csdn.n ...

  8. 【nodejs代理服务器三】nodejs注册windows服务

    node-windows I no longer have enough time to properly maintain this project and am seeking a new pri ...

  9. java递归、js递归,无限极分类菜单表

    java-json import com.alibaba.fastjson.JSONObject; import java.util.ArrayList; import java.util.List; ...

  10. 有关Error during sbt execution: No Scala version specified or detected的解决方案--SBT

    sbt 全称为 Simple Build Tool,是 Scala 项目中的标准构建工具,类似于 Java 下的 Maven/Groovy 中的 Gradle. 项目的构建 项目依赖自动化管理 提供统 ...