搭建ejabberd集群

搭建ejabberd集群

(金庆的专栏 2016.8)

以2台机器搭建一个ejabberd集群。

2台机器都是外网一块网卡,内网另一块网卡。
新建一个域名,添加2台机器的外网IP.

分别用源码安装ejabberd,可以单机运行。

复制 .erlang.cookie, 使2台机器都同。

更改 /sbin/ejabberdctl
ERLANG_NODE=ejabberd@localhost 改为
ERLANG_NODE=ejabberd@192.168.7.160
即localhost改为内网IP

启动失败:
[error] <0.63.0>@ejabberd_app:start_elixir_application:245 Elixir application not started.
[critical] <0.63.0>@ejabberd_app:db_init:127 Node name mismatch: I'm [ejabberd@192.168.7.160], the database is owned by [ejabberd@localhost]
[critical] <0.63.0>@ejabberd_app:db_init:129 Either set ERLANG_NODE in ejabberdctl.cfg or change node name in Mnesia
[error] <0.62.0> CRASH REPORT Process <0.62.0> with 0 neighbours exited with reason: node_name_mismatch in ejabberd_app:db_init/0 line 131 in application_master:init/4 line 134
[info] <0.31.0> Application ejabberd exited with reason: node_name_mismatch in ejabberd_app:db_init/0 line 131


因为Mnesia库中使用了旧的节点名
[root@host-192-168-7-160 ~]# ejabberdctl mnesia
[{auto_repair,true},
 {backup_module,mnesia_backup},
 {db_nodes,[ejabberd@localhost]},

删除旧库。

[root@host-192-168-7-160 ejabberd]# pwd
/var/lib/ejabberd
[root@host-192-168-7-160 ejabberd]# ls
caps_features.DAT  muc_registered.DCD   pubsub_index.DCD    sr_group.DCD
DECISION_TAB.LOG   muc_room.DCD         pubsub_item.DAT     sr_user.DCD
irc_custom.DCD     oauth_token.DCD      pubsub_node.DCD     vcard.DAT
last_activity.DCD  offline_msg.DAT      pubsub_state.DCD    vcard_search.DCD
LATEST.LOG         passwd.DCD           roster.DCD
motd.DCD           privacy.DCD          roster_version.DCD
motd_users.DCD     private_storage.DAT  schema.DAT
[root@host-192-168-7-160 ejabberd]# rm -f *
[root@host-192-168-7-160 ejabberd]#

更改 ejabberd.yml:
 hosts:
  - "my_domain.cn"
#  - "localhost"


先启动 ejabberd@192.168.7.160,然后启动另一节点,并让该节点加入集群:
ejabberdctl join_cluster 'ejabberd@192.168.7.160'

[root@host-192-168-7-159 ejabberd]# ejabberdctl list_cluster
'ejabberd@192.168.7.160'
'ejabberd@192.168.7.159'
[root@host-192-168-7-159 ejabberd]#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值