Файл конфигурации jabber.xml

Настройки сервера Jabber хранятся в формате XML, их можно редактировать в любом текстовом редакторе, но удобнее это делать с помощью редакторов языка XML, например, kxmleditor, emacs или vi с подсветкой синтаксиса.

Подсказка

Если после редактирования с помощью kxmleditor сервер Jabber не запускается с сообщением

The host tag contains illegal whitespace.
уберите в файле jabber.xml все разделители между тегом host и jabberd:cmdline, а также все разделители внутри тега spool.

Основные разделы jabber.xml:

service id='sessions'

Этот раздел описывает наиболее важный компонент сервера - Jabber Session Manager (JSM). Содержит следующую информацию:

  • Имя сервера

  • Основную информацию о сервере

  • Почтовые адреса администраторов сервера

  • Расположение сервера, предоставляющего информацию об обновлениях

  • Инструкции для регистрации новых пользователей

  • Приветственное сообщение для новых пользователей

  • Список агентов, у которых можно зарегистрироваться

  • Список модулей, загружаемых в JSM

xdb id='xdb'

Этот компонент отвечает за хранение данных, используя файловую систему. Можно также настроить сервер для хранение данных в другом месте, например, в базе данных.

service id='c2s'

Этот компонент управляет входящими клиентскими соединениями.

Параметры оптимизации:

authtime

Время для авторизации (в секундах). По умолчанию не ограничено.

karma

Система ограничения ввода/вывода, предусмотренная для предотвращения полного использования сервером полосы пропускания канала связи.

Также в этом разделе описываются адреса и порты, на которых сервер будет принимать клиентские соединения:

ip

Этот тег указывает адрес и порт для сервера. Указание адреса необязательно, тогда сервер будет слушать на адресах всех доступных интерфейсов. Можно указывать несколько тегов ip для разных адресов или портов.

ssl

Используется для указания адресов и портов, на которых сервер будет ждать SSL-соединения. Указание адреса обязательно, иначе соединения не произойдет. Можно указывать несколько тегов ssl для разных адресов или портов. Для каждого указанного адреса в разделе io должен быть указан файл с сертификатом SSL. Скрипт для создания такого файла находится в каталоге с документацией к серверу. Также ссылки на него можно найти на сайте документации Jabber.

log id='elogger'

В этом разделе описан компонент протоколирования ошибок, указывается формат записей в протоколе, файл с протоколом, копирование протокола в стандартный поток ошибок.

log id='rlogger'

В этом разделе описан компонент протоколирования статистики и общей информации о подключениях. Также указывается формат записей в протоколе и файл с протоколом.

service id='dnsrv'

Компонент для разрешения имен DNS.

service id='s2s'

Этот компонент отвечает за соединения между серверами. Тег dialback описывает систему проверки серверов Jabber - используется обратное соединение при попытке связи двух серверов. Тег legacy включает поддержку соединений со старыми версиями серверов Jabber. В этом разделе также есть теги ip и karma, описанные ранее для компонента клиентских соединений.

service id='s2s'

Эта часть конфигурации инициализирует систему ввода/вывода верхнего уровня, иначе известную как MIO - (Managed Input/Output - Управляемый ввод/вывод). Здесь можно указать глобальные значения для тега karma, приведены примеры таких значений для разной пропускной способности канала.

Тег rate описывает ограничения на количество соединений с одного адреса. Количество соединений больше указанного за указанный период времени превышает ограничение. Эти настройки применяются по умолчанию ко всем входящим соединениям для всех сервисов, пока не будут переопределены настройками отдельного сервиса.

Также в этом разделе можно указать тег ssl, в котором указать файлы с SSL-сертификатами для каждого адреса, на котором сервер принимает SSL-соединения.

Сервер позволяет управлять доступом по ip-адресам - для этого используются теги allow и deny.

pidfile

Указывает файл, в котором будет храниться pid процесса сервера. Если произошло падения сервера, этот файл нужно удалить вручную перед новым запуском, иначе сервер не запустится.

service id='custom_jid'

Здесь можно указать конфигурацию локальных сервисов или транспортов, доступ к которым обеспечивается агентами. Удобно хранить конфигурацию локальных сервисов в отдельных файлах и подключать ее указанием имени файла в теге jabberd:include. Таких сервисов, естественно, может быть несколько.