<?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>DevOps技术分享 &#187; KEEPALIVED</title>
	<atom:link href="http://www.showerlee.com/archives/tag/keepalived/feed" rel="self" type="application/rss+xml" />
	<link>http://www.showerlee.com</link>
	<description>与你共同学习运维开发</description>
	<lastBuildDate>Mon, 19 Oct 2020 05:51:41 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
		<item>
		<title>[SHELL]mysql主从+keepalived线上恢复解决方案</title>
		<link>http://www.showerlee.com/archives/917</link>
		<comments>http://www.showerlee.com/archives/917#comments</comments>
		<pubDate>Tue, 17 Sep 2013 08:49:54 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[SHELL]]></category>
		<category><![CDATA[KEEPALIVED]]></category>
		<category><![CDATA[MYSQL]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=917</guid>
		<description><![CDATA[最近一个项目需要做一个mysql+keepalived高可用主从同步，配起来当然轻车熟路，但想到如何在主库挂掉 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	最近一个项目需要做一个mysql+keepalived高可用主从同步，配起来当然轻车熟路，但想到如何在主库挂掉，从库接管后，以最快的速度恢复数据，并让主库重新接管，所以整理了下思路，编写了如下脚本，供大家参考
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql主从,以及keepalived高可用配置本博传送门:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#E53333;"><a href="http://www.showerlee.com/archives/300" target="_blank"><span style="color:#E53333;"><a href="http://www.showerlee.com/archives/300" rel="nofollow">http://www.showerlee.com/archives/300</a></span></a></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/archives/702" target="_blank"><span style="color:#E53333;"><a href="http://www.showerlee.com/archives/702" rel="nofollow">http://www.showerlee.com/archives/702</a></span><span style="color:#E53333;"></span></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	一.备份从库当前数据库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:以下的所有配置需要在数据库未运转状态下进行，建议做一个iptables规则禁止非管理员IP访问主从服务器IP，以及VIP，这样既能保证管理员可SSH远程登陆配置，又能恢复主从环境，待配置完成后解除禁止即可。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/mysql_bak.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 环境变量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	export LANG=C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 日常备份目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	basedir=/backup/daily/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 数据库账户
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	user=root
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	passwd=123456
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql备份目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql_db_bak=$basedir/$(date +%F_%H%M)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	[ ! -d "$mysql_db_bak" ] &amp;&amp; mkdir -p $mysql_db_bak
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql下所有库名称
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	db_name=("information_schema" "mysql" "test_db1" "test_db2" "test_db3" "test_db4")
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 1.备份MySQL数据库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	for((i=0; i!=${#db_name[@]}; ++i))
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysqldump -u $user -p$passwd --opt --skip-lock-tables --flush-logs --database ${db_name[i]} &gt; $mysql_db_bak/${db_name[i]}.sql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	二.复制从（192.168.7.12）数据库备份到主库（192.168.7.9）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/scp_mysql.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 环境变量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	scp /backup/daily/2013-09-10_1258/* 192.168.7.9:/tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	三.恢复主库（192.168.7.9）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/recover_mysql.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 环境变量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	export LANG=C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 数据库账户
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	user=root
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	passwd=123456
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# # mysql下所有库名称
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	db_name=("information_schema" "mysql" "test_db1" "test_db2" "test_db3" "test_db4")
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 恢复MySQL数据库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	cd /tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	for((i=0; i!=${#db_name[@]}; ++i))
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "drop database \`${db_name[i]}\`;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "create database \`${db_name[i]}\`;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd ${db_name[i]} &lt; ${db_name[i]}.sql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 开启从库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "stop slave;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "reset slave;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 设置从库连接主库的相关参数，可利用相关命令查看
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "change master to master_host='192.168.7.9',master_user='slave',master_password='123456#',master_log_file='bin.000029',master_log_pos=106 ";
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "start slave;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 查看主从是否连接成功
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "show slave status\G;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	四.查看主从同步信息
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.查看主库binlog日志以及偏移量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456 -e "show master status"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.查看从库是否连接到主库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456 -e " show slave status\G;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:实际操作中发现，一旦VIP切换后有一定几率造成主从服务器都会同时获取到该虚IP，导致主从数据库冲突，无论重启keepalived与否都无法干掉该VIP，目前我的临时解决方案是将两台服务器均重新启动，大家如果有更好的方法请留言告知我，不胜感谢。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"> </span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	最近一个项目需要做一个mysql+keepalived高可用主从同步，配起来当然轻车熟路，但想到如何在主库挂掉，从库接管后，以最快的速度恢复数据，并让主库重新接管，所以整理了下思路，编写了如下脚本，供大家参考
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql主从,以及keepalived高可用配置本博传送门:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://showerlee.blog.51cto.com/2047005/1220801" target="_blank">http://showerlee.blog.51cto.com/2047005/1220801</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://showerlee.blog.51cto.com/2047005/1188549" target="_blank">http://showerlee.blog.51cto.com/2047005/1188549</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	一.备份从库当前数据库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:以下的所有配置需要在数据库未运转状态下进行，建议做一个iptables规则禁止非管理员IP访问主从服务器IP，以及VIP，这样既能保证管理员可SSH远程登陆配置，又能恢复主从环境，待配置完成后解除禁止即可。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/mysql_bak.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 环境变量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	export LANG=C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 日常备份目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	basedir=/backup/daily/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 数据库账户
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	user=root
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	passwd=123456
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql备份目录
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql_db_bak=$basedir/$(date +%F_%H%M)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	[ ! -d "$mysql_db_bak" ] &amp;&amp; mkdir -p $mysql_db_bak
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql下所有库名称
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	db_name=("information_schema" "mysql" "test_db1" "test_db2" "test_db3" "test_db4")
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 1.备份MySQL数据库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	for((i=0; i!=${#db_name[@]}; ++i))
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysqldump -u $user -p$passwd --opt --skip-lock-tables --flush-logs --database ${db_name[i]} &gt; $mysql_db_bak/${db_name[i]}.sql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	二.复制从（192.168.7.9）数据库备份到主库（192.168.7.12）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/scp_mysql.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 环境变量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	scp /backup/daily/2013-09-10_1258/* 192.168.7.9:/tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	三.恢复主库（192.168.7.9）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	版本一:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/rc.d/recover_mysql.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 环境变量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	export LANG=C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 数据库账户
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	user=root
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	passwd=123456
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# # mysql下所有库名称
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	db_name=("information_schema" "mysql" "test_db1" "test_db2" "test_db3" "test_db4")
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 恢复MySQL数据库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	cd /tmp
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	for((i=0; i!=${#db_name[@]}; ++i))
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "drop database \`${db_name[i]}\`;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "create database \`${db_name[i]}\`;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd ${db_name[i]} &lt; ${db_name[i]}.sql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 开启从库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "stop slave;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "reset slave;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 设置从库连接主库的相关参数，可利用相关命令查看
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "change master to master_host='192.168.7.9',master_user='slave',master_password='123456#',master_log_file='bin.000029',master_log_pos=106 ";
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "start slave;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 查看主从是否连接成功
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $user -p$passwd -e "show slave status\G;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">版本二:</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">(自动获取主库binlog文件,和偏移值,优化参数,推荐):</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 环境变量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	export LANG=C
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 数据库参数
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_ip=192.168.7.9
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql_master_user=root
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql_slave_user=root
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql_passwd=123456
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_user=slave
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_passwd=123456#
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_log_file=$(mysql -h$master_ip -u$mysql_master_user -p$mysql_passwd -e "show master status" |sed -n '2p' |awk '{print $1}')
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	master_log_pos=$(mysql -h$master_ip -u$mysql_master_user -p$mysql_passwd -e "show master status" |sed -n '2p' |awk '{print $2}')
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	db_name=("information_schema" "mysql" "test_db1" "test_db2" "test_db3" "test_db4")
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 恢复MySQL数据库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	cd /tmp/mysql_bak
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	for((i=0; i!=${#db_name[@]}; ++i))
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	{
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $mysql_slave_user -p$mysql_passwd -e "drop database \`${db_name[i]}\`;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $mysql_slave_user -p$mysql_passwd -e "create database \`${db_name[i]}\`;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $mysql_slave_user -p$mysql_passwd ${db_name[i]} &lt; ${db_name[i]}.sql
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# 开启从库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $mysql_slave_user -p$mysql_passwd -e "stop slave;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $mysql_slave_user -p$mysql_passwd -e "reset slave;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $mysql_slave_user -p$mysql_passwd -e "change master to master_host='${master_ip}',master_user='${master_user}',master_password='${master_passwd}',master_log_file='${master_log_file}',master_log_pos=${master_log_pos};"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $mysql_slave_user -p$mysql_passwd -e "start slave;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mysql -u $mysql_slave_user -p$mysql_passwd -e "show slave status\G;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------------------
</p>
<p>
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	四.查看主从同步信息
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.查看主库binlog日志以及偏移量
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456 -e "show master status"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.查看从库是否连接到主库
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mysql -u root -p123456 -e " show slave status\G;"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注:实际操作中发现，一旦VIP切换后有一定几率造成主从服务器都会同时获取到该虚IP，导致主从数据库冲突，无论重启keepalived与否都无法干掉该VIP，目前我的临时解决方案是将两台服务器均重新启动，大家如果有更好的方法请留言告知我，不胜感谢。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"><br />
</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"></span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">后续:</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">在网上翻阅大量资料，初步判断VIP切换后造成的冲突是因为在触发切换动作时使用的pkill keepalived 来杀掉keepaliaved进程，造成系统只是杀掉<span>keepalived</span>自身进程，并未来得及切换VIP，</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">目前的解决方案是使用正规的keepalived启动脚本/etc/init.d/keepalived stop 来关闭</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">初步测试未发现异常。。。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">如果出现主从在切换VIP时，出现了主的VIP未自动关闭，从的正常开启，导致都获取到VIP，造成互相冲突的情况，可手动输入如下命令删除一方的VIP地址</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;"># ip addr del "虚拟ip" dev eth0</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">但此方法只是一个临时的解决方案，当手动删除VIP后，重启keepalived服务会无法正常开启vip，需要重启服务器方能恢复。</span>
</p>
<p></p>
<p>
	</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/917">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="[SHELL]mysql主从+keepalived线上恢复解决方案" href="http://www.showerlee.com/archives/917">http://www.showerlee.com/archives/917</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/917/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centos6.3下haproxy+keepalived+apache配置笔记</title>
		<link>http://www.showerlee.com/archives/65</link>
		<comments>http://www.showerlee.com/archives/65#comments</comments>
		<pubDate>Fri, 16 Aug 2013 18:17:33 +0000</pubDate>
		<dc:creator>showerlee</dc:creator>
				<category><![CDATA[Load balance]]></category>
		<category><![CDATA[APACHE]]></category>
		<category><![CDATA[HAPROXY]]></category>
		<category><![CDATA[KEEPALIVED]]></category>

		<guid isPermaLink="false">http://www.showerlee.com/?p=65</guid>
		<description><![CDATA[keepalived个人简单理解就是实现一个虚IP在keepalived主从服务器之间切换的功能，当主的kee [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalived个人简单理解就是实现一个虚IP在keepalived主从服务器之间切换的功能，当主的keeplived挂掉，从机会无缝接管该虚IP。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalived它作为一个辅助实现高可用性工具，一般都会配合某个具体服务工作，例如mysql,drbd，haproxy等，本篇介绍的就是haproxy,在前期做好keepalived配置后，做一个切换脚本，当haproxy挂掉后，脚本会立即执行keepalived关闭操作，从而让从机接管,该虚IP其实会和本机的物理IP做绑定，访问虚IP其实就可以理解为访问本机物理IP，该虚IP会在脚本被触发后切换到从机，而后访问虚IP也就是在访问从机物理IP，从而实现haproxy的高可用性。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">这个实验模拟的功能其实就是利用haproxy实现apache服务器间的负载均衡，缓解并发压力，并保证haproxy-master若挂掉,haproxy-backup能无缝接管，实现WEB站点负载均衡+高可用性。保证客户端无缝获取网站资源。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">解决方案：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	系统环境：centos6.3
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache: httpd-2.4.4
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy: haproxy-1.4.8
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	keepalived：keepalived-1.2.7
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy VIP: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;192.168.7.70
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy-master(haproxy1): &nbsp; &nbsp;&nbsp;192.168.7.71 &nbsp; &nbsp;ha1.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy-backup(haproxy2): &nbsp; &nbsp;&nbsp;192.168.7.72 &nbsp; &nbsp;ha2.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache1: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;192.168.7.73 &nbsp; &nbsp;www1.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache2: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;192.168.7.74 &nbsp; &nbsp;www2.example.com
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/1.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/1.jpg" alt="1" width="681" height="306" class="alignnone size-full wp-image-67" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1)为仅haproxy1配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy2)为仅haproxy2配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1，haproxy2)为haproxy1和haproxy2都得配置
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>部署环境：</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.关闭iptables和SELINUX
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service iptables stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# setenforce 0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/sysconfig/selinux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	SELINUX=disabled
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.apache安装
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	配置详见传送门：<a href="http://www.showerlee.com/archives/6" target="_blank">http://www.showerlee.com/archives/6</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：haproxy+keepalived其实搭配nginx效果也不错，本人线上因为长期使用apache，所以这篇博文就以apache介绍为主。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	安装完毕只需配置客户端浏览器访问根页面显示本机IP地址。
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>一.haproxy安装配置：(haproxy1，haproxy2)</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz" rel="nofollow">http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar zxvf haproxy-1.4.8.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd haproxy-1.4.8
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# uname -a &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //查看linux内核版本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make TARGET=linux26 PREFIX=/usr/local/haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make install PREFIX=/usr/local/haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# useradd -s /sbin/nologin haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# passwd haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chown -R haproxy.haproxy /usr/local/haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	配置：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	global
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log 127.0.0.1&nbsp;local0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	maxconn&nbsp;5120 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	chroot&nbsp;/usr/local/haproxy &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	user&nbsp;haproxy &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	group&nbsp;haproxy &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	daemon &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	quiet &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	nbproc &nbsp;1 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	pidfile&nbsp;/usr/local/haproxy/haproxy.pid
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">#启动服务后后会滚动日志，生产环境建议注释掉</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	debug &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	defaults
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	log 127.0.0.1&nbsp;local3 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mode&nbsp;http &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	option&nbsp;httplog
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	option&nbsp;httpclose
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	option &nbsp;dontlognull
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#option &nbsp;forwardfor &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	option &nbsp;redispatch
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	retries&nbsp;2
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	maxconn&nbsp;2000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	balance&nbsp;source &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	contimeout &nbsp; &nbsp; &nbsp;5000 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	clitimeout &nbsp; &nbsp; &nbsp;50000 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	srvtimeout &nbsp; &nbsp; &nbsp;50000 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	listen web_proxy :80
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp;server www1 &nbsp;192.168.7.73:80 &nbsp;weight 5 check inter 2000 rise 2 fall 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp;server www2 &nbsp;192.168.7.74:80 &nbsp;weight 5 check inter 2000 rise 2 fall 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	listen stats :8888 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	mode http &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#transparent &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	stats uri / haproxy-stats &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	stats realm Haproxy \ statistic
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#认证 &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	stats auth haproxy:password &nbsp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	启动haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg &amp;
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注：这里加上“&amp;”是为了让haproxy服务后台运行，去掉“&amp;”可实时查看其滚动日志</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	日志：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Available polling systems :
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; sepoll : pref=400, &nbsp;test result OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp;epoll : pref=300, &nbsp;test result OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; poll : pref=200, &nbsp;test result OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; select : pref=150, &nbsp;test result OK
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Total: 4 (4 usable), will use sepoll.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Using sepoll() as the polling mechanism.
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.accept(0004)=0007 from [192.168.7.129:5752]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clireq[0007:ffff]: GET / HTTP/1.1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Accept: text/html, application/xhtml+xml, */*
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Accept-Language: zh-CN
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: User-Agent: Mozilla/5.0 (compatible; MSIE
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	9.0; Windows NT 6.1; WOW64; Trident/5.0)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Accept-Encoding: gzip, deflate
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Host: 192.168.7.71
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: If-Modified-Since: Tue, 28 May 2013 18:22:10
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	GMT
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: If-None-Match: "10-4ddcb57ecf1ee"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clihdr[0007:ffff]: Connection: Keep-Alive
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvrep[0007:0008]: HTTP/1.1 304 Not Modified
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvhdr[0007:0008]: Date: Tue, 28 May 2013 19:48:35 GMT
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvhdr[0007:0008]: Server: Apache/2.4.4 (Unix)
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvhdr[0007:0008]: Connection: close
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvhdr[0007:0008]: ETag: "10-4ddcb57ecf1ee"
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.srvcls[0007:0008]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.clicls[0007:0008]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	00000000:web_proxy.closed[0007:0008]
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	查看是否启动
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ps -ef|grep haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy &nbsp; 2255 &nbsp; &nbsp; 1 &nbsp;0 03:33 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 /usr/local/haproxy/sbin/haproxy -f
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2323 &nbsp;2291 &nbsp;0 03:56 pts/1 &nbsp; &nbsp;00:00:00 grep haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	重启haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# pkill haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	其中：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy代理：192.168.7.71:80
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache1： &nbsp; &nbsp;192.168.7.73:80
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	apache2： &nbsp; &nbsp;192.168.7.74:80
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	统计页面监听的端口：8888
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	访问页面：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<p><a href="http://192.168.7.71:8888/haproxy-stats" rel="nofollow">http://192.168.7.71:8888/haproxy-stats</a></p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	认证账号/密码：haproxy/password
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/2.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/2.jpg" alt="2" width="654" height="236" class="alignnone size-full wp-image-68" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">总结：</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">&nbsp; &nbsp; 通过日志可以看出，客户端192.168.7.129连接haproxy192.168.7.71的80端口，且客户端无</span><span style="color:#FF0000;">论如何刷新页面，haproxy都只会把访问请求跳转到apache2的192.168.7.74地址，这是因为</span><span style="color:#FF0000;">balance source这个参数会保持会话ID,如果改成balance roundrobin模式，那么客户端会轮流</span><span style="color:#FF0000;">连接两台web服务器，线上还是建议使用balance source,这样会保持某一客户端在长时间内保</span><span style="color:#FF0000;">持他的会话，不会来回跳转。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">&nbsp; &nbsp; 这里其实已经利用haproxy完成了对两台apache服务器的负载均衡功能，但如何保证负载均衡的</span><span style="color:#FF0000;">高可用性，这里就得利用keepalived的热备功能，保证haproxy1如果挂掉，haproxy2能实时接</span><span style="color:#FF0000;">管，实现网站前端负载均衡高可用，这也是我们目前比较流行的组合haproxy+keepalived。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>二.keepalived安装配置：(haproxy1，haproxy2）</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# wget <a href="http://www.keepalived.org/software/keepalived-1.2.7.tar.gz" rel="nofollow">http://www.keepalived.org/software/keepalived-1.2.7.tar.gz</a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# tar zxvf keepalived-1.2.7.tar.gz
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cd keepalived-1.2.7
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ./configure --prefix=/usr/local/keepalived --with-kernel-
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	dir=/usr/src/kernels/2.6.32-279.el6.x86_64
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# make &amp;&amp; make install
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	设置keepalived启动脚本
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# mkdir /etc/keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chkconfig keepalived on
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/keepalived/keepalived.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	! Configuration File for keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	global_defs {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	router_id LVS_DEVEL
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	vrrp_instance VI_1 {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	state MASTER
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	interface eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_router_id 51
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	priority 150
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	advert_int 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	authentication {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_type PASS
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_pass 1111
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_ipaddress {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	192.168.7.70
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy2）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/keepalived/keepalived.conf
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	! Configuration File for keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	global_defs {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	router_id LVS_DEVEL
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	vrrp_instance VI_1 {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	state BACKUP
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	interface eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_router_id 51
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	priority 120
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	advert_int 1
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	authentication {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_type PASS
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	auth_pass 1111
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	virtual_ipaddress {
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	192.168.7.70
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	}
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	启动keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service keepalived start
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ps -ef |grep keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;1726 &nbsp;1722 &nbsp;0 10:57 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 sh /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2678 &nbsp; &nbsp; 1 &nbsp;0 11:15 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2680 &nbsp;2678 &nbsp;0 11:15 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2681 &nbsp;2678 &nbsp;0 11:15 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 keepalived -D
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2691 &nbsp;2178 &nbsp;0 11:15 pts/1 &nbsp; &nbsp;00:00:00 grep keepalived
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	创建haproxy+keepalived脚本：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">实现当haproxy挂掉后，能再次启动haproxy,若无法再次启动则彻底关闭keepalived将VIP交给</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">从机处理。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1，haproxy2）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# vi /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	#!/bin/bash
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	while :
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	do
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	hapid=`ps -C haproxy --no-header |wc -l`
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; if [ $hapid -eq 0 ];then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; sleep 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; if [ $hapid -eq 0 ];then
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; /etc/init.d/keepalived stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; fi
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; sleep 5
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	done
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	改执行权限
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# chmod 755 /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	强制后台执行（关闭客户端连接也会继续运行）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# nohup sh /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">注；该脚本参考酒哥的"构建高可用LINUX服务器"一书，需在keepalived开机正常启动后，方可在主从机执行。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">本人实测，不能将该脚本做开机启动，会导致开机将keepalived服务关闭，如想实现开机自动执行该脚本，估计要做脚本语句优化，这里有兴趣的朋友可以帮忙修改一下。</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<strong>三.测试：</strong>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1.在两台机器上分别执行ip add，目前显示VIP在haproxy1上与本机网卡绑定
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy1）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ip add
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP qlen
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;link/ether 00:0c:29:d2:c6:75 brd ff:ff:ff:ff:ff:ff
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet 192.168.7.71/24 brd 192.168.7.255 scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet&nbsp;<span style="color:#FF0000;">192.168.7.70/32</span>&nbsp;scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet6 fe80::20c:29ff:fed2:c675/64 scope link
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; valid_lft forever preferred_lft forever
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	(haproxy2）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ip add
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP qlen
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;link/ether 00:0c:29:ff:21:19 brd ff:ff:ff:ff:ff:ff
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet 192.168.7.72/24 brd 192.168.7.255 scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet6 fe80::20c:29ff:feff:2119/64 scope link
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; valid_lft forever preferred_lft forever
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	-----------------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	在浏览器访问该虚IP:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<p><a href="http://192.168.7.70" rel="nofollow">http://192.168.7.70</a></p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	返回如图：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/3.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/3.jpg" alt="3" width="651" height="99" class="alignnone size-full wp-image-69" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<span style="color:#FF0000;">证明，keepalived让haproxy1接管负载均衡，将页面跳转到apache2上</span>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	2.停掉haproxy1上的haproxy服务，5秒后keepalived会自动将其再次启动
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	（haproxy1）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# pkill haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	等5秒
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ps -ef |grep haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;1712 &nbsp;1708 &nbsp;0 01:17 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 sh /etc/keepalived/check_haproxy.sh
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	haproxy &nbsp; 2440 &nbsp; &nbsp; 1 &nbsp;0 01:29 ? &nbsp; &nbsp; &nbsp; &nbsp;00:00:00 /usr/local/haproxy/sbin/haproxy -f
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	/usr/local/haproxy/haproxy.cfg
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	root &nbsp; &nbsp; &nbsp;2443 &nbsp;1807 &nbsp;0 01:29 pts/1 &nbsp; &nbsp;00:00:00 grep haproxy
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	--------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	3.停掉主的keepalived，备机马上接管服务
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	（haproxy1）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# service keepalived stop
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# uname -a
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Linux&nbsp;<span style="color:#FF0000;">ha1.example.com</span>&nbsp;2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	x86_64 x86_64 x86_64 GNU/Linux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	（haproxy2）
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# ip add
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP qlen
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	1000
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;link/ether 00:0c:29:ff:21:19 brd ff:ff:ff:ff:ff:ff
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet 192.168.7.72/24 brd 192.168.7.255 scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet&nbsp;<span style="color:#FF0000;">192.168.7.70/32&nbsp;</span>scope global eth0
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp;inet6 fe80::20c:29ff:feff:2119/64 scope link
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	&nbsp; &nbsp; &nbsp; valid_lft forever preferred_lft forever
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	# uname -a
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	Linux<span style="color:#FF0000;">&nbsp;ha2.example.com&nbsp;</span>2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	x86_64 x86_64 x86_64 GNU/Linux
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------------
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	现已跳转到haproxy2,在浏览器再次访问该虚IP:
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
<p><a href="http://192.168.7.70" rel="nofollow">http://192.168.7.70</a></p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	返回如图：
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	<a href="http://www.showerlee.com/wp-content/uploads/2013/08/4.jpg"><img onerror="javascript:this.src='http://www.showerlee.com/wp-content/themes/BYMT/images/images_error.jpg'" src="http://www.showerlee.com/wp-content/uploads/2013/08/4.jpg" alt="4" width="586" height="141" class="alignnone size-full wp-image-70" /></a>
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	
</p>
<p style="color:#555555;font-family:宋体, 'Arial Narrow', arial, serif;font-size:14px;background-color:#FFFFFF;">
	---------大功告成----------</p>
<div>声明: 本文采用 <a rel="external" href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" title="署名-非商业性使用-相同方式共享 3.0 Unported">CC BY-NC-SA 3.0</a> 协议进行授权</div><div>转载请注明来源：<a rel="external" title="DevOps技术分享" href="http://www.showerlee.com/archives/65">DevOps技术分享</a></div><div>本文链接地址：<a rel="external" title="Centos6.3下haproxy+keepalived+apache配置笔记" href="http://www.showerlee.com/archives/65">http://www.showerlee.com/archives/65</a></div>]]></content:encoded>
			<wfw:commentRss>http://www.showerlee.com/archives/65/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
