联系:手机/微信(+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功能实现定时同步