keepalived高可用双主lvs-dr模型集群

keepalived高可用双主lvs-dr模型集群
keepalived高可用双主lvs-dr模型集群
环境 centos6.8
在keepalived服务器上安装keepalived RS服务器上安装nginx ,安装过程省略
为了便于实验,四台机器将关闭iptables和selinux

配置如下:

K1:

#修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
root@localhost            #邮件地址
}
notification_email_from Alexandre.Cassen@firewall.loc     #定义发件人
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id 192.168.37.133   #此为keepalived1服务器的IP
vrrp_mcast_group4 224.0.100.32     #定义多播地址
}
vrrp_instance nginx1 {       #节点名称
state BACKUP                #节点模式
interface eth0            #指定网卡名
virtual_router_id 51
priority 95            #权重
advert_int 1            #健康检查间隔时间,生产环境配置请慎重
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {         #指定VIP
192.168.37.200/16 dev eth0
}
}
virtual_server 192.168.37.200 80{      #指定虚拟服务器
delay_loop 6                          
lb_algo wrr                       #循环模式
lb_kind DR                        #LVS工作模式
protocol TCP                       #协议
real_server 192.168.37.134 80     #真实物理机的ip和端口
{
weight 2                         #权重
HTTP_GET {                      #健康检查的模式
url {
path /
status_code 200                  #如果返回状态码为200,则视为服务器健康   
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {           #定义第二台真实服务器
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }
   
vrrp_instance nginx2 { #定义第二台虚拟服务器
state MASTER
interface eth0
virtual_router_id 34
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.37.201/16 dev eth0
}
}
virtual_server 192.168.37.201 80{
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.37.134 80
{
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }

#启动keeplived
service keepalived restart
K2:

修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id 192.168.37.130
vrrp_mcast_group4 224.0.100.32
}
vrrp_instance nginx1 {
state MASTER
interface eth0
virtual_router_id 51
priority100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.37.200/16 dev eth0
}
}
virtual_server 192.168.37.200 80{
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.37.134 80
{
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }
   
vrrp_instance nginx2 {
state BACKUP
interface eth0
virtual_router_id 34
priority 95
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.37.201/16 dev eth0
}
}
virtual_server 192.168.37.201 80{
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.37.134 80
{
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }

#启动keeplived
service keepalived restart
RS1:
#修改Nginx的首页为
echo “lvs1 RS1:192.168.37.135” > /usr/share/nginx/html/index.htm
#添加脚本
vim setpara.sh
   
    
vim setpara.sh
vip=192.168.37.200
vip2=192.168.37.201
mask='255.255.255.255'
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo:0 $vip netmask $mask broadcast $vip up
rgoute add -host $vip dev lo:0
ifconfig lo:1 $vip2 netmask $mask broadcast $vip2 up
rgoute add -host $vip2 dev lo:0
;;
stop)
ifconfig lo:0 down
ifconfig lo:1 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
echo "Usage $(basename $0) start|stop"
exit 1
;;
esac

#执行脚本

 bash setpara.sh start

#配置完毕,启动Nginx
service nginx restart
RS2:
修改Nginx的首页为
echo “lvs1 RS2:192.168.37.134” > /usr/share/nginx/html/index.html
添加脚本
   
    
vim setpara.sh
vip=192.168.37.200
vip2=192.168.37.201
mask='255.255.255.255'
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo:0 $vip netmask $mask broadcast $vip up
rgoute add -host $vip dev lo:0
ifconfig lo:1 $vip2 netmask $mask broadcast $vip2 up
rgoute add -host $vip2 dev lo:0
;;
stop)
ifconfig lo:0 down
ifconfig lo:1 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
echo "Usage $(basename $0) start|stop"
exit 1
;;
esac

#执行脚本 

bash setpara.sh start

#配置完毕,启动Nginx

service nginx restart


有关keepalived配置问题,已及LVS-DR模式的ARP抑制原理随后更新。


原创文章,作者:cnc,如若转载,请注明出处:http://www.178linux.com/75374

(0)
cnccnc
上一篇 2017-05-13 20:51
下一篇 2017-05-13 21:30

相关推荐

  • 学习宣言

    不妥协,不气馁,朝着自己的目标前进。

    Linux干货 2016-10-24
  • nginx的模块应用

    1.location的定义 (1)当location中午定义时,默认使用server中的相关定义。 (2)当locating中有了相关定义,此时则启用location中的定义的内容。 nginx -t检查配置文件是否有语法错误 nginx -s reload重载nginx (3)即使server中的root中的目录下有了/admin的目录,但是同时又在loc…

    Linux干货 2016-10-30
  • linux进程管理

    进程概念 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、 安全功能等 Process:  运行中的程序的一个 副本,是被 载入内存的一个指令集合     进程ID (Process ID,PID)号码被用来标记各个进程  &…

    Linux干货 2016-09-12
  • 马哥教育21期网络班—第12周课程+练习—-LAMP练习中

    为第4题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点; (1)要求使用证书认证,证书中要求使用的国家(CN)、州(HA)、城市(ZZ)和组织(MageEdu); (2)设置部门为Ops,主机名为www2.stuX.com,邮件为admin@stuX.com; [ root@centos CA]# …

    Linux干货 2016-09-26
  • N25-第三周作业

    第三周 一、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@zf ~]# who | cut -d " " -f1  | sort | uniq -…

    Linux干货 2016-12-20
  • Linux系统中的防火墙iptables

    iptables/netfilter——Linux系统下的防火墙 基本原理 防火墙主要功能 工作于主机或者网络边缘,对进出本主机或本网络的报文进行匹配检测,对匹配到规则的报文进行于规则相对应的处理。 防火墙主要分类 按功能分类 主机防火墙网络防火墙 按构成分类 软件防火墙硬件防火墙 Linux防火墙软件iptables/netfilter(以后简称iptab…

    Linux干货 2017-06-13