联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
因为blog的服务器不太稳定,经常有异常断网或者关机现象发生,今天采用了利用一些基本资源,使用了高可用,整体思路采用DNSPod域名解析提供的免费检测服务器状态,如果主服务器发生宕机,自动切换到备机功能(监控功能)实现高可用。
1、配置备用服务器和主服务器一致,使用相同的域名均可以访问(修改电脑的hosts文件测试)
在本次配置中,主要是固定url的功能
1.1)apache中启用该模块mod_rewrite
1.2).htaccess文件中内容
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
1.3)启用FollowSymLinks功能
“Options Indexes FollowSymLinks
… …
AllowOverride None”
改为
“Options Indexes FollowSymLinks
… …
AllowOverride All”
2、配置DNSPod监控功能,添加备机ip到域名解析中
3、既然思路是当一台服务器发生故障时,域名解析自动切换到备用服务器,那么问题就是主服务器和备服务器的数据要一致,因为是网站,涉及的数据一致主要就是数据库内容一致,网站上传编辑附件一致即可
3.1)mysql数据库同步(因为这个是个人blog,对数据的实时性,一致要求不是异常的高,所以采用crontab实现同步,如果要求高,可以采用mysql 主主复制实现)
#!/bin/bash #目标数据库 target_db=******* target_user=******* target_pwd=******* target_host=******* #源数据库 source_db=******* source_user=******* source_pwd=******* source_host=******* #其他配置 dumptime=$(date +%y%m%d%H%M) dumpfile=/home/chengfei/backup/mysql/${dumptime}.sql logfile=/home/chengfei/backup/log/syc_mysql.log #开始操作 echo "开始数据库同步……`date`……">>${logfile} #导出数据库 /usr/bin/mysqldump -u${source_user} -p${source_pwd} -h${source_host} ${source_db} >${dumpfile} 2>> ${logfile} #导入数据库 mysql -u${target_user} -p${target_pwd} -h${target_host}<<XFF>> ${logfile} drop database ${target_db}; create database ${target_db}; use ${target_db}; source ${dumpfile} exit XFF #操作结束 echo "数据库同步结束……`date`……">>${logfile} echo ''>>${logfile} --crontab 00 2,12,14,16,18,20,22,24 * * * /home/chengfei/backup/script/sysc_mysql.sh
3.2)因为我这个blog上传编辑图片类的内容非常少,暂时没有考虑网站文件同步功能,以后可以考虑实现。目前初步方案是采用scp或者ftp结合crontab功能实现定时同步
可以的啊,我给你看下切换的记录
时间 信息
2011/8/11 16:49:41 [恢复]恢复域名到原有的服务器,域名:(www.xifenfei.com)(6609646);IP:(60.191.178.186),完成结果#已经恢复 Record modified success。
2011/8/11 16:49:40 [网络] 来自监控点的通知,域名(www.xifenfei.com)(60.191.178.186)状态更改为:(Ok)(200)message:(#暂无),当前的状态为 Down
2011/8/11 16:08:31 [切换]自动切换宕机主机至备用服务器。域名:(www.xifenfei.com)(6609646);IP:(60.191.178.186),结果:已经切换为 211.155.227.172 (Record modified success)
2011/8/11 16:08:30 [网络] 来自监控点的通知,域名(www.xifenfei.com)(60.191.178.186)状态更改为:(Down)(-1)message:(由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 60.191.178.186:80),当前的状态为 Ok
这样也行,我也一直在用DNSPOD解析,还是他们的VIP呢,我去试试,看看什么效果
楼主好有才啊,我知道dsnpod解析还不错,但真不知道,原来还可以实现blog高可用性
这个不是一个严谨的高可用方案,只是根据我的blog的目前状态采用的一个临时的解决方案,可以从一定程度上提高blog的可访问性