由于nginx的url hash功能可以很好的提升squid的性能,所以我把squid前端的負(fù)載均衡器更換為nginx,但是一臺(tái)nginx就形成了單點(diǎn),現(xiàn)在使用keepalived來(lái)解決這個(gè)問(wèn)題,keepalived的故障轉(zhuǎn)移時(shí)間很短,而且配置簡(jiǎn)單,這也是選擇keepalived的一個(gè)主要原因,建議日PV值小的中小型企業(yè)web均可采用如下方案實(shí)行,下面直接上安裝步驟:
一、環(huán)境:
centos5.3、nginx-0.7.51、keepalived-1.1.19
主nginx負(fù)載均衡器:192.168.0.154
輔nginx負(fù)載均衡器:192.168.9.155
vip:192.168.0.188
二、安裝keepalived
#tar zxvf keepalived-1.1.19.tar.gz
#cd keepalived-1.1.19
#./configure --prefix=/usr/local/keepalived
#make
#make install
#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#mkdir /etc/keepalived
#cd /etc/keepalived/
vim keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
yuhongchun027@163.com
}
notification_email_from keepalived@chtopnet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.0.155 <==輔nginx的IP地址
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass chtopnet
}
virtual_ipaddress {
192.168.0.188 <==VIP地址
}
}
#service keepalived start
我們來(lái)看一下日志:
[root@ltos ~]# tail /var/log/messages
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering HINFO record with values 'I686'/'LINUX'.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for fe80::20c:29ff:feb9:eeab on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for 192.168.0.154 on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Host name conflict, retrying with
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for fe80::20c:29ff:feb9:eeab on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering HINFO record with values 'I686'/'LINUX'.
很顯然vrrp已經(jīng)啟動(dòng),我們還可以通過(guò)命令:#ip a 來(lái)檢查
[root@ltos html]# ip a
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.154/24 brd 192.168.0.255 scope global eth0
inet 192.168.0.188/32 scope global eth0
inet6 fe80::20c:29ff:feba:9be7/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
說(shuō)明vip已經(jīng)啟動(dòng),這樣主服務(wù)器就配置好了,輔機(jī)的配置大致一樣,除了配置文件有少部分的變化,下面貼出輔機(jī)的配置文件:
! Configuration File for keepalived
global_defs {
notification_email {
yuhongchun027@163.com
}
notification_email_from keepalived@chtopnet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.0.154 <==主nginx的IP的地址
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass chtopnet
}
virtual_ipaddress {
192.168.0.188
}
}
檢查其配置
[root@ltos html]# ip a
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.155/24 brd 192.168.0.255 scope global eth0
inet 192.168.0.188/32 scope global eth0
inet6 fe80::20c:29ff:feba:9be7/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
測(cè)試其效果方法很簡(jiǎn)單,分別在主輔機(jī)上建立不同的主頁(yè),index.html的內(nèi)容分別為192.168.0.154,192.168.0.155,然后用客戶機(jī)上elinks http://192.168.0.188,主機(jī)down掉后輔機(jī)會(huì)馬上接替提供服務(wù),間隔時(shí)間幾乎無(wú)法感覺出來(lái),這個(gè)環(huán)境準(zhǔn)備再進(jìn)行下壓力測(cè)