以前是随意了解下ejabberd,也无聊去装了下,但是现在公司说要用ejabberd做IM的服务器,有种想死的冲动有木有啊!!!不是人配置的有木有啊!!!我一点都不懂有木有啊!!!坑爹的网上资料有木有啊!!!官方文档看的我想死有木有啊!!!我自己一个人调试了四天有木有啊!!!第一天,傻逼一样的,第二天,稍微有点想法,还是失败,第三天,感觉会了,电脑的IP突然改了,坑爹啊,第四天,终于成功了,激动的一B啊。
1.首先修改hosts文件里面的内容添加两个节点的IP和域名,及主节点域名和IP。
2.安装ejabberd,无脑安装即可,最好安装的时候把服务器名称改为djh.zj135.com。
3.修改C:\Users\Administrator\AppData\Roaming\ejabberd\conf\ejabberdctl.cfg 文件,加入并修改ERLANG_NODE和INET_DIST_INTERFACE的值。
其中INET_DIST_INTERFACE的值是tuple,所以不能用’.‘而是只能用’,‘,但是我觉得我没有这个也没事,也许是在Windows环境下。
4.修改D:\Program Files (x86)\ejabberd-2.1.11\bin\ejabberdctl文件,改HOST=ry.djh.zj.com,这个好像不要也行,还是保险点写下吧。
5.将第二个节点也重复2-4步骤。
6.在第两台机子上运行命令行,输入
7.下面的操作只在第二个节点上运行,关闭第二个节点的ejabberd,将第一个节点C:\Users\Administrator下的.erlang.cookie文件复制到第二个节点的C:\Users\Administrator文件下覆盖。
8.还是在第二个节点的机器上运行命令行,(最好在D盘下新建个XX文件,怕错误)输入
name 是long name (可以百度),mnesia dir ‘”/XX”’ 说明是D:\XX, s mnesia 是打开数据库,setcookie后面是.erlang.cookie里面的内容。
9.然后继续在命令行输入mnesia:info().查看,如果running db nodes 有两个,说明成功。
10.如果成功,继续在命令行输入mnesia:change_table_copy_type(schema, node(), disc_copies).
11.然后复制数据库,继续在命令行输入 [{Tb, mnesia:add_table_copy(Tb, node(), Type)}|| {Tb, [{'ejabberd@ry.djh.zj.com', Type}]} <- [{T, mnesia:table_info(T, where_to_commit)}|| T <- mnesia:system_info(tables)]].。
12.然后去Ctrl+C直接退出。
13.删除C:\Users\Administrator\AppData\Roaming\ejabberd\database\ejabberd@wy.djh.zj.com里面的所有内容,并将D:\XX所有的内容复制到上面删除内容的目录里面。
14.添加负载均衡配置,在C:\Users\Administrator\AppData\Roaming\ejabberd\conf\ejabberd.cfg的文件末尾加入{domain_balancing_component_number, "djh.zj135.com", 2}.。
15.修改日志级别为debug方便观察后台信息,即C:\Users\Administrator\AppData\Roaming\ejab
berd\conf\ejabberd.cfg文件下的{loglevel, 3}.为{loglevel, 5}.。
16.然后重启ejabberd,在web管理页面看到两个节点,访问两个节点的效果完全一样。