<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>为IT服务 [龙飞的博客] &#187; keepalived</title>
	<atom:link href="http://226617.cn/archives/tag/keepalived/feed" rel="self" type="application/rss+xml" />
	<link>http://226617.cn</link>
	<description>什么都略懂一点，生活就多彩一些</description>
	<lastBuildDate>Sun, 08 Jan 2012 15:58:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nginx+keepalived负载均衡篇</title>
		<link>http://226617.cn/archives/791.htm</link>
		<comments>http://226617.cn/archives/791.htm#comments</comments>
		<pubDate>Fri, 06 Nov 2009 13:17:06 +0000</pubDate>
		<dc:creator>龙飞</dc:creator>
				<category><![CDATA[linux相关]]></category>
		<category><![CDATA[nginx相关]]></category>
		<category><![CDATA[keepalived]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://226617.cn/?p=791</guid>
		<description><![CDATA[由于nginx的url hash功能可以很好的提升squid的性能，所以我把squid前端的负载均衡器更换为nginx，但是一台nginx就形成了单点，现在使用keepalived来解决这个问题，keepalived的故障转移时间很短... ]]></description>
			<content:encoded><![CDATA[<p>由于nginx的url hash功能可以很好的提升squid的性能，所以我把squid前端的负载均衡器更换为nginx，但是一台nginx就形成了单点，现在使用keepalived来解决这个问题，keepalived的故障转移时间很短(<1s)，而且配置简单，这也是选择keepalived的一个主要原因，建议日PV值小的中小型企业web均可采用如下方案实行，下面直接上安装步骤：</p>
<p>一、环境：<br />
centos5.3、nginx-0.7.51、keepalived-1.1.19<br />
主nginx负载均衡器：192.168.0.154<br />
辅nginx负载均衡器：192.168.9.155<br />
vip：192.168.0.188</p>
<p>二、安装keepalived</p>
<p>#tar zxvf keepalived-1.1.19.tar.gz<br />
#cd keepalived-1.1.19<br />
#./configure --prefix=/usr/local/keepalived<br />
#make<br />
#make install<br />
#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/<br />
#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/<br />
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/<br />
#mkdir /etc/keepalived<br />
#cd /etc/keepalived/<br />
vim keepalived.conf</p>
<p>! Configuration File for keepalived<br />
global_defs {<br />
   notification_email {<br />
   yuhongchun027@163.com<br />
        }<br />
   notification_email_from keepalived@chtopnet.com<br />
   smtp_server 127.0.0.1<br />
   smtp_connect_timeout 30<br />
   router_id LVS_DEVEL<br />
}</p>
<p>vrrp_instance VI_1 {<br />
    state MASTER<br />
    interface eth0<br />
    virtual_router_id 51<br />
    mcast_src_ip 192.168.0.155    <==辅nginx的IP地址<br />
    priority 100<br />
    advert_int 1<br />
    authentication {<br />
        auth_type PASS<br />
        auth_pass chtopnet<br />
    }<br />
    virtual_ipaddress {<br />
        192.168.0.188                      <==vip地址<br />
    }<br />
}<br />
#service keepalived start<br />
我们来看一下日志：<br />
[root@ltos ~]# tail /var/log/messages<br />
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.<br />
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.<br />
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering HINFO record with values 'I686'/'LINUX'.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for fe80::20c:29ff:feb9:eeab on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for 192.168.0.154 on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Host name conflict, retrying with <ltos-31><br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for fe80::20c:29ff:feb9:eeab on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.<br />
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering HINFO record with values &#8216;I686&#8242;/&#8217;LINUX&#8217;.</p>
<p>很显然vrrp已经启动，我们还可以通过命令：#ip a 来检查</p>
<p>[root@ltos html]# ip a<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue<br />
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
    inet 127.0.0.1/8 scope host lo<br />
    inet6 ::1/128 scope host<br />
       valid_lft forever preferred_lft forever<br />
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000<br />
    link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff<br />
    inet 192.168.0.154/24 brd 192.168.0.255 scope global eth0<br />
    inet 192.168.0.188/32 scope global eth0<br />
    inet6 fe80::20c:29ff:feba:9be7/64 scope link<br />
       valid_lft forever preferred_lft forever<br />
3: sit0: <NOARP> mtu 1480 qdisc noop<br />
    link/sit 0.0.0.0 brd 0.0.0.0</p>
<p>说明vip已经启动，这样主服务器就配置好了，辅机的配置大致一样，除了配置文件有少部分的变化，下</p>
<p>面贴出辅机的配置文件：</p>
<p>! Configuration File for keepalived<br />
global_defs {<br />
   notification_email {<br />
   yuhongchun027@163.com<br />
        }<br />
   notification_email_from keepalived@chtopnet.com<br />
   smtp_server 127.0.0.1<br />
   smtp_connect_timeout 30<br />
   router_id LVS_DEVEL<br />
}</p>
<p>vrrp_instance VI_1 {<br />
    state BACKUP<br />
    interface eth0<br />
    virtual_router_id 51<br />
    mcast_src_ip 192.168.0.154              <==主nginx的IP的地址<br />
    priority 100<br />
    advert_int 1<br />
    authentication {<br />
        auth_type PASS<br />
        auth_pass chtopnet<br />
    }<br />
    virtual_ipaddress {<br />
        192.168.0.188<br />
    }<br />
}</p>
<p>检查其配置<br />
[root@ltos html]# ip a<br />
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue<br />
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
    inet 127.0.0.1/8 scope host lo<br />
    inet6 ::1/128 scope host<br />
       valid_lft forever preferred_lft forever<br />
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000<br />
    link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff<br />
    inet 192.168.0.155/24 brd 192.168.0.255 scope global eth0<br />
    inet 192.168.0.188/32 scope global eth0<br />
    inet6 fe80::20c:29ff:feba:9be7/64 scope link<br />
       valid_lft forever preferred_lft forever<br />
3: sit0: <NOARP> mtu 1480 qdisc noop<br />
    link/sit 0.0.0.0 brd 0.0.0.0</p>
<p>测试其效果方法很简单，分别在主辅机上建立不同的主页，index.html分别为192.168.0.154,192.168.0.155，然后用客户机上elinks http://192.168.0.188,主机down掉后辅机会马上接替提供服务，间隔时间几乎无法感觉出来,这个环境准备再进行下压力测试，用于我杭州网跃朋友的web服务器，如有疑问请联系yuhongchun027@163.com(抚琴煮酒)</p>
<p>转载至 http://hi.baidu.com/yuhongchun027/blog/item/25eca12c3442e9e68a13998c.html</p>
]]></content:encoded>
			<wfw:commentRss>http://226617.cn/archives/791.htm/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

