1、首先准备两台服务器、三台也可以我这里是两台

IP:192.168.52.33

IP:192.168.52.34

VIP:192.168.52.100

2、关闭防火墙

systemctl  stop firewalld

setenforce 0

3、安装keepalived,两台机器都需要安装

yum -y install keepalived

4、打开keepalived的配置文件,首先配置主的文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval
vrrp_gna_interval
} vrrp_instance VI_1 {
state MASTER #这里要改成主的
interface ens32 #这个网卡名字一定要写自己的 我的是ens32
virtual_router_id
priority 100 #这个是优先级主的优先级一定要比从的优先级高
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.52.100 #vip地址
}
} virtual_server 192.168.52.100 {
delay_loop
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
protocol TCP real_server 192.168.52.33 {
weight
TCP_CHECK {
connect_timeout
connect_port
nb_get_retry
delay_before_retry
}
} real_server 192.168.52.34 {
weight
TCP_CHECK {
connect_timeout
connect_port
nb_get_retry
delay_before_retry
}
}
}

vrrp_strict   #centos7里的keepalived有一个广播  这个需要删除  切记


5、配置从的文件,比主的文件有一点差别

vim /etc/keepalived/keealived.con

! Configuration File for keepalived

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval
vrrp_gna_interval
} vrrp_instance VI_1 {
state BACKUP #这个要写从
interface ens32 #网卡名字要写成自己的
virtual_router_id
priority 90 #从的优先级一定要比主的优先级要低
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.52.100 #vip要和主的配置的一致
}
} virtual_server 192.168.52.100 {
delay_loop
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
protocol TCP real_server 192.168.52.33 {
weight
TCP_CHECK {
connect_timeout
connect_port
nb_get_retry
delay_before_retry
}
} real_server 192.168.52.34 {
weight
TCP_CHECK {
connect_timeout
connect_port
nb_get_retry
delay_before_retry
}
}
}
vrrp_strict #centos7里的keepalived有一个广播 这个需要删除 切记

6、重启keepalived,两个机子都需要重启

systemctl restart keepalived

7、查看主的vip是否存在

[root@localhost ~]# ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet 192.168.52.100/ brd 192.168.52.100 scope global lo:
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP group default qlen
link/ether :0c::8e::0c brd ff:ff:ff:ff:ff:ff
inet 192.168.52.33/ brd 192.168.52.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet 192.168.52.100/ scope global ens32
valid_lft forever preferred_lft forever
inet6 fe80::9dd1:a054:cfbe:/ scope link noprefixroute
valid_lft forever preferred_lft forever
: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu qdisc noqueue state DOWN group default qlen
link/ether ::::ed: brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/ brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
: virbr0-nic: <BROADCAST,MULTICAST> mtu qdisc pfifo_fast master virbr0 state DOWN group default qlen
link/ether ::::ed: brd ff:ff:ff:ff:ff:ff

8、关闭主的keepalived,查看vip是否漂移到从上

主:systemctl stop keepalived

从:

[root@localhost html]# ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN group default qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet 192.168.52.100/ brd 192.168.52.100 scope global lo:
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP group default qlen
link/ether :0c:::8a: brd ff:ff:ff:ff:ff:ff
inet 192.168.52.34/ brd 192.168.52.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet 192.168.52.100/ scope global ens32
valid_lft forever preferred_lft forever
inet6 fe80::de48:34e2:d290:a46/ scope link noprefixroute
valid_lft forever preferred_lft forever
: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu qdisc noqueue state DOWN group default qlen
link/ether ::::fe: brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/ brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
: virbr0-nic: <BROADCAST,MULTICAST> mtu qdisc pfifo_fast master virbr0 state DOWN group default qlen
link/ether ::::fe: brd ff:ff:ff:ff:ff:ff

如果成功,代表keepalived配置成功

主:开启keepalived

systemctl restart keepalived

9、安装ipvsadm,两个服务器都需要安装、

yum  -y  install ipvsadm

10、增加服务器的接口

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens32 ifdown-eth ifdown-post ifdown-TeamPort ifup-eth ifup-plip ifup-sit init.ipv6-global
ifcfg-lo ifdown-ib ifdown-ppp ifdown-tunnel ifup-ib ifup-plusb ifup-Team network-functions
ifcfg-lo: ifdown-ippp ifdown-routes ifup ifup-ippp ifup-post ifup-TeamPort network-functions-ipv6
ifdown ifdown-ipv6 ifdown-sit ifup-aliases ifup-ipv6 ifup-ppp ifup-tunnel
ifdown-bnep ifdown-isdn ifdown-Team ifup-bnep ifup-isdn ifup-routes ifup-wireless
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:

11、修改cp的接口

[root@localhost network-scripts]# vim ifcfg-lo:

[root@localhost network-scripts]# cat ifcfg-lo:
DEVICE=lo:
IPADDR=192.168.52.100
NETMASK=255.255.255.255
ONBOOT=yes
[root@localhost network-scripts]#

12、另一台服务器做同样的操作

13、查看ifconfig看两台服务器的vip添加上没有

14、两台服务器执行操作

ipvsadm -A -t 192.168.52.100: -s rr
ipvsadm -a -t 192.168.52.100: -r 192.168.52.33: -g
ipvsadm -a -t 192.168.52.100: -r 192.168.52.34: -g
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
route add -host 192.168.52.100 dev lo:

15、两台服务器执行ipvsadm查看是否成功

[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.52.100: rr
-> 192.168.52.33: Route
-> 192.168.52.34: Route
[root@localhost ~]#

16、两台服务器查看vip是否存在

[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.52.2 0.0.0.0 UG ens32
192.168.52.0 0.0.0.0 255.255.255.0 U ens32
192.168.52.100 0.0.0.0 255.255.255.255 UH lo
192.168.122.0 0.0.0.0 255.255.255.0 U virbr0
[root@localhost ~]#

17、两台服务器源码安装Apache

yum -y install httpd

18、编写测试页面

第一台服务器

[root@localhost ~]# vim /var/www/html/index.html
[root@localhost ~]# cat /var/www/html/index.html [root@localhost ~]#

第二台服务器

[root@localhost ~]# vim /var/www/html/index.html
[root@localhost ~]# cat /var/www/html/index.html [root@localhost ~]#

19、两台服务器更改Apache配置文件

vim /etc/httpd/conf/httpd.conf

#http的持久链接主要依靠keepalive
KeepAlive OFF #关闭KeeoAlive长链接
KeepAliveTimeout 15 #长连接多久算是超时,超时之后自动断开长连接
MaxKeepAliveRequests 100 #长连接最多接受多少个请求,请求数量大于改值则自动断开
开启Apache
systemctl restart httpd
访问vip就可以看到负载均衡的效果了

LVS+DR+apache+keepalived负载均衡的更多相关文章

  1. Keepalived+LVS(dr)高可用负载均衡集群的实现

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...

  2. LVS+Keepalived负载均衡配置

    简介 lvs一般是和keepalived一起组合使用的,虽然也可以单独使用lvs,但配置比较繁琐,且可用性也没有前者高. lvs和keepalived组合使用后,配置lvs的VIP和负载均衡就都在ke ...

  3. LVS+keepalived负载均衡

    背景:         随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高 ...

  4. [转]LVS+Keepalived负载均衡配置

    简介 来源:https://www.cnblogs.com/MacoLee/p/5858995.html lvs一般是和keepalived一起组合使用的,虽然也可以单独使用lvs,但配置比较繁琐,且 ...

  5. 搭建LVS+Keepalived负载均衡集群

    这两天学习了LVS+Keepalived负载均衡的搭建.网上的教程非常多,可是动起手来遇到不少问题. 如今把自己的搭建过程以及遇到的一些问题给分享下. 硬件环境: Macbook 8G内存.250G ...

  6. (转)CentOS7 搭建LVS+keepalived负载均衡(一)

    原文:http://blog.csdn.net/u012852986/article/details/52386306 CentOS7 搭建LVS+keepalived负载均衡(一) CentOS7 ...

  7. Heartbeat+LVS构建高可用负载均衡集群

    1.heartbeat简介: Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里 ...

  8. 实现基于Haproxy+Keepalived负载均衡高可用架构

    1.项目介绍: 上上期我们实现了keepalived主从高可用集群网站架构,随着公司业务的发展,公司负载均衡服务已经实现四层负载均衡,但业务的复杂程度提升,公司要求把mobile手机站点作为单独的服务 ...

  9. Nginx+Keepalived负载均衡高可用

    Nginx+Keepalived负载均衡高可用方案: Nginx 使用平台:unix.linux.windows. 功能: A.www web服务  http 80 b.负载均衡(方向代理proxy) ...

随机推荐

  1. Effective.Java第34-44条(枚举)

    34.  使用枚举类型替代整型常量 常量的语义表达不清晰,只能靠前面的名称来区分.枚举具有可读性.更安全.更强大等优势.而且枚举类型对象之间的值比较可以使用==来比较值是否相等的,不是必须使用equa ...

  2. Sitecore 9 您应该了解的所有新功能和变化

    信不信由你,当我谈论Sitecore时,我感到非常兴奋.这是一个充满潜力和机遇的伟大平台 如果你能想象一个刚刚进行过一次双重训练的人,一个特大号的星巴克,并且刚刚在创纪录的时间内完成了中国忍者勇士的障 ...

  3. 解决:ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];

    简记 使用SkyWalking用ES做存储,发现运行一段时间会提示ElasticSearch ClusterBlockException[blocked by: [FORBIDDEN/12/index ...

  4. Java学习:switch语句使用的注意事项

    switch语句使用的注意事项: 多个case后面的数值不可以重复. switch后面的小括当中只能是下列数据类型: 基本数据类型:byte/short/char/int 引用数据类型:String字 ...

  5. ArrayDeque详解

    美人如斯! ArrayDeque是java中对双端队列的线性实现 一.特性 无容量大小限制,容量按需增长: 非线程安全队列,无同步策略,不支持多线程安全访问: 当用作栈时,性能优于Stack,当用于队 ...

  6. 使用SqlBulkCopy将DataTable百万级数据瞬间入库

    #region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致.// ...

  7. SimHash算法--文章相似度匹配

    SimHash原理 1.SimHash背景 SimHash算法来自于 GoogleMoses Charikar发表的一篇论文"detecting near-duplicates for we ...

  8. 从零搭建一个简单的webpack环境

    1.npm Init 2.创建webpack.config.js文件,并配置入口和出口 3.Package.json的script中配置命令对应的操作 .安装webpack-dev-server 模块 ...

  9. QT之Qt之Q_PROPERTY宏理解

    在初学Qt的过程中,时不时地要通过F2快捷键来查看QT类的定义,发现类定义中有许多Q_PROPERTY的东西,比如最常用的QWidget的类定义: Qt中的Q_PROPERTY宏在Qt中是很常用的,那 ...

  10. Scroller——startScroll、fling(惯性滑动)

    Scroller主要用于平滑滚动,主要使用的滚动方法有:startScroll.fling. startScroll(int startX, int startY, int dx, int dy, i ...