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. Mysql系列(三)—— Mysql主从复制配置

    一.前言 主从复制是Mysql知识体系中非常重的要一个模块.学习主从复制和后续的读写分离是完善只是知识体系的重要环节.且主从复制读写分离的思想并不仅仅局限于Mysql,在很多存储系统中都有该方案,如: ...

  2. SqlServer 2012 清理日志 截断日志的方法

    ALTER DATABASE test SET RECOVERY SIMPLE WITH NO_WAITALTER DATABASE test SET RECOVERY SIMPLE --简单模式DB ...

  3. HTTP协议小记

    应用层上的协议非常重要的一个协议是HTTP协议. 这个协议包括了请求和回复两种报文类型. 请求和回复报文的内容形式是 1)起始行 2)首行 3)消息体 请求报文的内容格式是 <version&g ...

  4. 使用docker部署titpetric/netdata

    netdata 是常用的Linux系统性能实时监控面板 官方docker netdata/netdata部署 docker run -d --name=netdata \ -p 19999:19999 ...

  5. JavaScript入门(三)

    JavaScript入门篇—JSONP的应用 什么是JSONP 个人理解:将服务器端返回的json数据封装成JavaScript对象,非正式传输协议. JSONP解决了什么问题 Ajax不支持跨域请求 ...

  6. 彻底理解javascript中的this指针

    http://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/ https://www.benn ...

  7. Servlet 入门

    静态web页面:html+css+js,页面是静态的.不变的,显示给每个用户的页面都一样. 动态web页面:php.jsp.asp,根据用户.实时数据(数据库)来动态显示页面,不同的用户,显示的页面可 ...

  8. python之路第三天

    2018年 7月 13 日 while循环语句: 输出1-5的数 s = 1 whlie s < 6: print(s) 用while循环输入 1 2 3 4 5 6  8 9 10 while ...

  9. RabbitMQ基本概念(一)-RabbitMQ的优劣势及产生背景

    本篇并没有直接讲到技术,例如没有先写个Helloword.我想在选择了解或者学习一门技术之前先要明白为什么要现在这个技术而不是其他的,以免到最后发现自己学错了.同时如果已经确定就是他,最好先要了解下技 ...

  10. MongoDB Spark Connector 实战指南

    Why Spark with MongoDB? 高性能,官方号称 100x faster,因为可以全内存运行,性能提升肯定是很明显的 简单易用,支持 Java.Python.Scala.SQL 等多种 ...