3

I currently have an ejabberd server running at domain A. It has a bunch of users with accounts like xyz@A. I want to setup alternative servers so that if A is down, clients can transparently use alternative servers B and C (thus, while still using their xyz@A account).

The DNS part I think is pretty simple, I need to edit A zone file to add SRV records of the alternative servers like in this example (http://wiki.xmpp.org/web/SRV_Records#Example_3):

_xmpp-client._tcp.example.net. 86400 IN SRV 5 50 5222 server1.example.net.
_xmpp-client._tcp.example.net. 86400 IN SRV 10 30 5222 server2.example.net.
_xmpp-client._tcp.example.net. 86400 IN SRV 10 10 5222 server3.example.net.
_xmpp-client._tcp.example.net. 86400 IN SRV 10 10 5222 server4.example.net.
_xmpp-client._tcp.example.net. 86400 IN SRV 15 0 5222 backup.example.net.
_xmpp-server._tcp.example.net. 86400 IN SRV 5 50 5269 server1.example.net.
_xmpp-server._tcp.example.net. 86400 IN SRV 10 30 5269 server2.example.net.
_xmpp-server._tcp.example.net. 86400 IN SRV 10 10 5269 server3.example.net.
_xmpp-server._tcp.example.net. 86400 IN SRV 10 10 5269 server4.example.net.
_xmpp-server._tcp.example.net. 86400 IN SRV 15 0 5269 backup.example.net.

What are the steps and specific configuration to setup the ejabberd servers on host B and C w.r.t authentification and chatrooms?

Although working redundant servers with the initial user db of A will be enough (I don't expect A to be down for a long time), ideally I think I should sync the user db between all 3 servers so that if someone makes an account on B while A is down can later log on A when it is back up. Does ejabberd provide a mechanism for that?

Stevoisiak
  • 13,555
  • 39
  • 101
  • 154
knarf
  • 365
  • 1
  • 4
  • 9
  • I will ask on serverfault... – knarf Nov 30 '15 at 10:28
  • Given that you haven't received answer for ejabberd I could recommend using Tigase XMPP Server - it supports clustering out of the box (see https://docs.tigase.net/tigase-server/8.0.0/Administration_Guide/html/#tigaseClustering) and it only requires enabling clustering mode - it will connect to the same database and allows authentication of the users. Completely separate issue is clustering/high availability of database but I would recommend using database specific solution for that. – Wojtek Mar 12 '19 at 20:46

0 Answers0