首先说明一下拓扑结构
四台虚拟机。
之前不在一个网段一直没有成功。最后改到了同一个网段。
两台虚拟机做keepalived
一台master(192.168.2.254)和backup(192.168.2.10)。
两外两台是nginx服务器。简单的配置了一下。使得能打开网页。
分别是node3(192.168.2.11) 和node4(192.168.2.12)
把noed3和node4的nginx配置好。
四台机器之间要能互通。
接下来配置keepalived
首先安装,在rhel6.4中。构建一个本地源仓库。在LoadBalancer里可以找到keepalived这个软件包。配置好直接可以yum安装。
然后配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
#如果有什么信息,可以发送邮件提醒。
}
notification_email_from root@localhost
#设置发件人的地址
smtp_server 127.0.0.1
#发件人是本地
smtp_connect_timeout 30
#发送超时的时间
router_id LVS_DEVEL
#路由id的名字
}
vrrp_instance VI_1 {
state MASTER
#主为MASTER,从为BACKUP(另一个机器的就要改成backup)
interface eth2
#因为我要绑定的是第三个网卡,所以是eth2
virtual_router_id 51
priority 100
#优先级,master的优先级一定要大于backup
advert_int 1
authentication {
#keepalived之间的通信认证。两个要一样
auth_type PASS
auth_pass redhat
}
virtual_ipaddress {
#VIP的地址。后面是绑定到哪个设备上。
192.168.2.222/24 dev eth2 label eth2:0
}
}
virtual_server 192.168.2.222 {
#设置这个VIP的真实地址
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
sorry_server 192.168.2.254 80
#如果所指的真实nginx服务器都检测不到状态。那么就要设置这个sorry_server的地址。
real_server 192.168.2.11 80 {
weight 1
HTTP_GET {
url {
#检测服务器地址的状态。
path /
status_code 200
}
connect_timeout 3
#超时时间
nb_get_retry 3
#重试时间
delay_before_retry 3
}
}
real_server 192.168.2.12 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
如上就能实现一个最简单的nginx+keepalived。但是,在如上的配置之后。打开虚拟ip的时候。一直请求不到内容,查看keepalived机上的地址也没发现有什么不对的。
最后在网上找到了一个
ifconfig lo:0 192.168.2.222 netmask 255.255.255.255 up
echo "1" > /proc/sys/net/ipv4/ip_forward
暂时还不是特别明白它的意思。
等补充。