先“感谢”信息产业部,有能办拆分电信业务而没有能力使他们互联互通,使之产生具有中国特色的电信格局。在天台要是移动用户访问电信机房的服务器,那是要受到严格限制的,而访问天台之窗尤甚,电信公司对移动用户访问天台之窗有特别的“照顾”。
现在在电信和移动的IDC机房各备有一台服务器,用于天台之窗论坛的镜像,电信用户访问电信服务器,而移动用户访问移动服务器。
DNS采用智能解析,电信用户访问bbs.zjtt.cn访问的是电信IDC服务器,而移动用户访问bbs.zjtt.cn访问的是移动IDC的服务器。
论坛采用MYSQL数据库,Discuz X1.5论坛。在移动IDC端,只访问代码,远程调用电信服务器的数据库,而移动IDC和电信IDC之间采用CDN技术加速,不用我去考虑。就是说二机房之间互通速度是足够快的。当移动用户访问天台之窗论坛时,用户-----移动服务器------电信服务器-------移动服务器-------用户这样的数据流。
修改移动服务器端的论坛配置。
1. config\config_global.php 文件
$_config['db']['1']['dbhost'] = 'localhost'; 改成 $_config['db']['1']['dbhost'] = '电信服务器IP';
2. config\config_ucenter.php 文件
define('UC_DBHOST', 'localhost'); 改成 define('UC_DBHOST', '电信服务器IP');
define('UC_IP', '电信服务器IP');
3. uc_server\data\config.inc.php 文件
define('UC_DBHOST', '电信服务器IP');
这样运行时会出现错误
ERROR 1130: Host '移动服务器IP' is not allowed to connect to this MySQL server
说明移动服务器无权访问MYSQL数据库。
回到电信服务器
打开mysql管理界面,选中Discuz论坛所用的数据库,运行下面的语句:
表示授权IP为12.12.12.12的服务器root用户访问本数据库,密码是1234
GRANT ALL PRIVILEGES ON *.* TO 'root'@'12.12.12.12' IDENTIFIED BY '1234' WITH GRANT OPTION;
flush privileges;
这样移动服务器上就可以正常运行论坛了。
虽然数据库这样调用解决了数据库的问题,但网友上传的附件并没有解决。要求任一服务器上传的附件必须同时在另一台服务器上存在。
目前我还没有想出不增加硬件的方法下实时同步的办法。
网上找到一有时间触发的FTP备份软件,可以对二台远程服务器之间互相备份,时间间隔从几秒到几天不等。我定为一分钟,每隔一分钟就去检查对方服务器有没有新的附件上传上来,有的话就传过来或传过去。就是说在另一台服务器上传了附件,一分钟内就会在另一台服务器上,这样就可以接近实时了。
2011-7-2