在aws上为ejabberd服务器运行多个节点。 ec2实例

时间:2019-07-24 13:47:43

标签: elixir ejabberd

我在aws实例上安装了带有内置ejabberd服务器的elixir。

以下是我对此的查询:

  1. 当我通过mix命令启动elixir服务器时...
    • 在控制台上显示ejabberd服务器从nonode @ nohost启动的情况。
    • 我想更改节点的名称。
    • 我尝试使用命令更改节点名称

:ejabberd_admin.mnesia_change_nodename('nonode@nohost', 'coolnode@localhost', "/_build/dev/lib/ejabberd/old.backup", "/_build/dev/lib/ejabberd/new.backup")

但这给了我错误

  

{:error,{:EXIT,:function_clause}}

我也尝试过

  • 离开elixir外壳并打印命令: iex --sname coolnode @ localhost

它更改了节点名称,但是当我重新启动elixir服务器时,它再次打印在控制台上,........ ejabberd服务器从nonode @ nohost启动

  1. 当我在另一个AWS实例上安装elixir ejabberd服务器时,我想加入这2个节点。
    • 我该怎么做?

1 个答案:

答案 0 :(得分:0)

  

我想更改节点的名称。

您可以在文件ejabberdctl.cfg中配置erlang节点名称,该名称显示为:

ERLANG_NODE=ejabberd@localhost

在此之前,请停止ejabberd并删除Mnesia假脱机文件(这些文件是使用旧节点名创建的)。

  

当我在另一个AWS实例上安装elixir ejabberd服务器时,   加入这两个节点。

一旦您可以运行一个ejabberd节点。将ejabberd安装在另一台计算机/实例上,并使用不同的erlang节点名称进行配置,该名称可能是“ ejabberd @ machine2”。

在一台机器上,执行以下操作:

ejabberdctl join_cluster ejabberd@theotherone