Jabber-сервер для нескольких доменов
Продолжаю цикл заметок о Jabber.Давайте рассмотрим следующую ситуацию, есть два проекта один - корпоративный сайт (super-corp.ru, второй - информационно развлекательный портал (super-portal.ru), оба принадлежат одной конторе и для каждого нужно сделать Jabber. Естественно - для корпоративного сайта нужно чтобы он был в домене super-copr.ru и на нем нельзя было регистрироваться кому попало, а для портала напротив нужно разрешить публичную регистрацию. Ставить два Jabber-сервера было бы
весьма расточительно в плане расхода ресурсов и материальных средств, но разработчики сервера ejabberd позаботились о такой ситуации, данный сервер умеет работать с т.н. виртуальными хостами, позволяя их по разному настраивать, назначать разных администраторов и т.п. Сегодня на простом примере мы рассмотрим как эту функцию можно использовать.Как всегда возьмем самый обычный VDS, под управлением ОС FreeBSD.Лирическое отступление:Почему я всегда ставлю на VDS? Да все просто, потому что аренда сервера требует более серьезных денежных вливаний, а ставить свои эксперименты на живом сервере, где помимо моих крутятся еще чьи-то сайты мне не позволяет воспитание. Естественно если требуется обслуживание большого количества клиентов нужно арендовать выделенный сервер в Швейцарии. Почему в Швейцарии, да просто так, как пример.Ejabberd мы уже установили и настроили в одной из предыдущих статей, поэтому останавливаться на этом смысла нет.Идем в конфигурационный файл /usr/local/etc/ejabberd/ejabberd.cfg и ищем там
% Host name:{hosts, ["domain.ru"]}.
Приводим вот к такому виду.
% Host name:{hosts, ["domain.ru", "domain2.ru"]}.
Идем в начало конфига, ищем
{acl, admin, {user, "admin"}}.
Приводим к виду
{acl, admin, {user, "admin", "domain.ru"}}.
Это нужно чтобы администратор имел доступ к администрированию всех доменов, обслуживаемых сервером.И что же это нам даст? А даст нам это возможность иметь разные настройки для разных доменов
{host_config, "domain.ru",[{access, register, [{allow, all}]}]}.{host_config, "domain2.ru",[{access, register, [{deny, all}]}]}.
В данном примере для первого домен разрешена публичная регистрация, а для второго запрещена. Как еще применить - каждый придумывает сам.
Комментарии