<!-- c2s configuration -->
<!-- настройки: клиенты к серверу -->
<!-- далее, "ядро XMPP-сервера", пишется как "ядро" -->
<c2s>
<!-- Идентификатор модуля, с которым таковой подключается к ядру (default: c2s) -->
<id>c2s</id>
<!-- Адрес PID-файла (в нём фиксируется ID процесса) -->
<pidfile>/var/jabberd/pid/c2s.pid</pidfile>
<!-- Настройки подключения к ядру -->
<router>
<ip>127.0.0.1</ip>
<port>5347</port>
<!-- Имя пользователя, от имени которого модуль подключается к ядру, и пароль для аутентификации -->
<user>jabberd</user>
<pass>strongPassword</pass>
<!-- Файл, содержащий SSL-сертификат и закрытый ключ, используемые для шифрования подключения модуля к ядру -->
<pemfile>/usr/local/etc/jabberd/server.pem</pemfile>
<!-- Настройки переподключения модуля к ядру -->
<retry>
<!-- Количество попыток инициирования подключения модуля к ядру (default: 3, без ограничений: -1) -->
<init>-1</init>
<!-- Количество попыток переподключения модуля к ядру в случае потери связи (default: 3, без ограничений: -1) -->
<lost>-1</lost>
<!-- Задержка (в секундах) между попытками подключения и переподключения (default: 2) -->
<sleep>2</sleep>
</retry>
</router>
<!-- Настройки журналирования (поддерживаемые типы: "syslog", "file" или "stdout") -->
<log type='file'>
<file>/var/jabberd/log/c2s.log</file>
</log>
<!-- Настройки сетевых подключений -->
<local>
<!-- Предписываем запустить приём подключений для доменного имени "jabber0.local", требуя от клиентов безусловного переключения соединения на защиту с помощью протокола TLS, используя для этого сертификат и закрытый ключ из прилагаемого PEM-файла -->
<id realm='jabber0.local'
pemfile='/usr/local/etc/jabberd/server.pem'
require-starttls='true'
>jabber0.local</id>
<!-- Предписываем запустить приём подключений для доменного имени "jabber1.local", требуя от клиентов безусловного переключения соединения на защиту с помощью протокола TLS, используя для этого сертификат и закрытый ключ из прилагаемого PEM-файла -->
<id realm='jabber1.local'
pemfile='/usr/local/etc/jabberd/server.pem'
require-starttls='true'
>jabber1.local</id>
<!-- Перечисляем IP-адреса несущего сервера, которые будут прослушиваться (default: 0.0.0.0) -->
<ip>0.0.0.0</ip>
<!-- Указываем порт, который будет прослушиваться модулем (default: 5222) -->
<port>5222</port>
</local>
<!-- Настройки подсистем ввода/вывода -->
<io>
<!-- Указываем максимальное количество открытых модулем одновременно "файловых дискрипторов". На каждое подключение клиента к серверу создаётся по дискриптору. Кроме того, обеспечение функциональности самого модуля требует пару-тройку сетевых подключений, сокетов или открытых файлов. В общем, нужно иметь в виду, что допустимое количество не должно быть меньше предполагаемого числа одновременной подключенных к серверу пользователей (default: 1024) -->
<max_fds>1024</max_fds>
<!-- Ограничения пропускной способности -->
<limits>
<!--
Интересная функция контролирования объёмов передаваемого трафика: если за период в "Y" секунд будет передано "X" байт, то соединение клиента к серверу будет "придушено" на "Z" секунд. Не совсем понятно, правда, как сильно "зажимается" подключение, но, надо полагать, что не фатально. Синтаксис:
<bytes seconds='Y' throttle='Z'>X</bytes>
Default: Y=1, Z=5 (для отключения функции следует "X" установить в "0").
-->
<bytes>0</bytes>
<!--
Другая разновидность контроля активности клиента: если за период в "Y" секунд будет передано "X" "строф" (законченных XML-блоков, содержащих инструкцию или данные), то соединение клиента к серверу будет "придушено" на "Z" секунд. Синтаксис:
<stanzas seconds='Y' throttle='Z'>X</stanzas>
Default: Y=1, Z=5 (для отключения функции следует "X" установить в "0").
-->
<stanzas>1000</stanzas>
<!--
Клиента можно ограничить по количеству попыток подключения с одного IP-адреса: если за период в "Y" секунд с одного IP-адреса будет осуществлено более "X" попыток подключения, то с этого IP-адреса в течении "Z" секунд не будут приниматься (???) подключения. Синтаксис:
<connects seconds='Y' throttle='Z'>X</connects>
Default: Y=5, Z=5 (для отключения функции следует "X" установить в "0"). -->
<connects>0</connects>
<!-- Для предупреждения попыток заслать на сервер ненормально большой объём данных, ограничим максимальный размер (в байтах) XML-блока (следует иметь в виду, что минимальная граница значения: 16384) (для отключения функции следует значение установить в "0"). -->
<stanzasize>65535</stanzasize>
</limits>
<!-- Включаем поддержку сжатия потока передаваемых данных (XEP-0138) -->
<compression/>
<!-- Настройки контроля активности соединений -->
<check>
<!-- Установим интервал (в секундах) проверки активности соединений. По таймеру будут запускаться описанные далее тесты (для отключения функционала следует значение установить в "0") -->
<interval>60</interval>
<!-- Пассивный тест: устанавливаем интервал (в секундах), по истечении которого принудительно закрываются соединения, не передающие данных вообще (для отключения функционала следует значение установить в "0") -->
<idle>0</idle>
<!-- Активный тест: устанавливаем интервал (в секундах), по истечении которого по соединению не проявляющему активности будет отправлен одиночный символ; если на отправленный запрос не придёт ответа, то TCP-соединение будет закрыто (для отключения функционала следует значение установить в "0") -->
<keepalive>60</keepalive>
</check>
</io>
<!-- Настройки подсистем механизма аутентификации и доступа к реквизитам пользователей -->
<authreg>
<!-- Путь к используемым библиотекам -->
<path>/usr/local/lib/jabberd</path>
<!-- Перечень допустимых механизмов аутентификации -->
<mechanisms>
<!-- Перечень допустимых механизмов аутентификации, встроенных в XMPP-сервер Jabberd2 -->
<traditional>
<plain/>
<digest/>
</traditional>
<!-- Перечень допустимых механизмов аутентификации, поддерживаемых прослойкой SASL, с использованием которой мы скомпилировали Jabberd2 (механизмы SASL имеют приоритет выше, чем встроенные в Jabberd2, так что, на самом деле только они и используются). -->
<sasl>
<plain/>
<digest-md5/>
</sasl>
</mechanisms>
<!-- Выбираем модуль доступа к базе данных реквизитов пользователей XMPP-сервера -->
<module>mysql</module>
<!-- Настройки подключения к MySQL, для доступа к реквизитам пользователей XMPP-сервера -->
<mysql>
<host>localhost</host>
<port>3306</port>
<dbname>jabberd2</dbname>
<user>jabberd2</user>
<pass>strongPassword</pass>
<!-- Указываем хранить пароли в открытом виде, не шифруя их -->
<password_type>
<plaintext/>
</password_type>
</mysql>
</authreg>
</c2s>
<!-- настройки: клиенты к серверу -->
<!-- далее, "ядро XMPP-сервера", пишется как "ядро" -->
<c2s>
<!-- Идентификатор модуля, с которым таковой подключается к ядру (default: c2s) -->
<id>c2s</id>
<!-- Адрес PID-файла (в нём фиксируется ID процесса) -->
<pidfile>/var/jabberd/pid/c2s.pid</pidfile>
<!-- Настройки подключения к ядру -->
<router>
<ip>127.0.0.1</ip>
<port>5347</port>
<!-- Имя пользователя, от имени которого модуль подключается к ядру, и пароль для аутентификации -->
<user>jabberd</user>
<pass>strongPassword</pass>
<!-- Файл, содержащий SSL-сертификат и закрытый ключ, используемые для шифрования подключения модуля к ядру -->
<pemfile>/usr/local/etc/jabberd/server.pem</pemfile>
<!-- Настройки переподключения модуля к ядру -->
<retry>
<!-- Количество попыток инициирования подключения модуля к ядру (default: 3, без ограничений: -1) -->
<init>-1</init>
<!-- Количество попыток переподключения модуля к ядру в случае потери связи (default: 3, без ограничений: -1) -->
<lost>-1</lost>
<!-- Задержка (в секундах) между попытками подключения и переподключения (default: 2) -->
<sleep>2</sleep>
</retry>
</router>
<!-- Настройки журналирования (поддерживаемые типы: "syslog", "file" или "stdout") -->
<log type='file'>
<file>/var/jabberd/log/c2s.log</file>
</log>
<!-- Настройки сетевых подключений -->
<local>
<!-- Предписываем запустить приём подключений для доменного имени "jabber0.local", требуя от клиентов безусловного переключения соединения на защиту с помощью протокола TLS, используя для этого сертификат и закрытый ключ из прилагаемого PEM-файла -->
<id realm='jabber0.local'
pemfile='/usr/local/etc/jabberd/server.pem'
require-starttls='true'
>jabber0.local</id>
<!-- Предписываем запустить приём подключений для доменного имени "jabber1.local", требуя от клиентов безусловного переключения соединения на защиту с помощью протокола TLS, используя для этого сертификат и закрытый ключ из прилагаемого PEM-файла -->
<id realm='jabber1.local'
pemfile='/usr/local/etc/jabberd/server.pem'
require-starttls='true'
>jabber1.local</id>
<!-- Перечисляем IP-адреса несущего сервера, которые будут прослушиваться (default: 0.0.0.0) -->
<ip>0.0.0.0</ip>
<!-- Указываем порт, который будет прослушиваться модулем (default: 5222) -->
<port>5222</port>
</local>
<!-- Настройки подсистем ввода/вывода -->
<io>
<!-- Указываем максимальное количество открытых модулем одновременно "файловых дискрипторов". На каждое подключение клиента к серверу создаётся по дискриптору. Кроме того, обеспечение функциональности самого модуля требует пару-тройку сетевых подключений, сокетов или открытых файлов. В общем, нужно иметь в виду, что допустимое количество не должно быть меньше предполагаемого числа одновременной подключенных к серверу пользователей (default: 1024) -->
<max_fds>1024</max_fds>
<!-- Ограничения пропускной способности -->
<limits>
<!--
Интересная функция контролирования объёмов передаваемого трафика: если за период в "Y" секунд будет передано "X" байт, то соединение клиента к серверу будет "придушено" на "Z" секунд. Не совсем понятно, правда, как сильно "зажимается" подключение, но, надо полагать, что не фатально. Синтаксис:
<bytes seconds='Y' throttle='Z'>X</bytes>
Default: Y=1, Z=5 (для отключения функции следует "X" установить в "0").
-->
<bytes>0</bytes>
<!--
Другая разновидность контроля активности клиента: если за период в "Y" секунд будет передано "X" "строф" (законченных XML-блоков, содержащих инструкцию или данные), то соединение клиента к серверу будет "придушено" на "Z" секунд. Синтаксис:
<stanzas seconds='Y' throttle='Z'>X</stanzas>
Default: Y=1, Z=5 (для отключения функции следует "X" установить в "0").
-->
<stanzas>1000</stanzas>
<!--
Клиента можно ограничить по количеству попыток подключения с одного IP-адреса: если за период в "Y" секунд с одного IP-адреса будет осуществлено более "X" попыток подключения, то с этого IP-адреса в течении "Z" секунд не будут приниматься (???) подключения. Синтаксис:
<connects seconds='Y' throttle='Z'>X</connects>
Default: Y=5, Z=5 (для отключения функции следует "X" установить в "0"). -->
<connects>0</connects>
<!-- Для предупреждения попыток заслать на сервер ненормально большой объём данных, ограничим максимальный размер (в байтах) XML-блока (следует иметь в виду, что минимальная граница значения: 16384) (для отключения функции следует значение установить в "0"). -->
<stanzasize>65535</stanzasize>
</limits>
<!-- Включаем поддержку сжатия потока передаваемых данных (XEP-0138) -->
<compression/>
<!-- Настройки контроля активности соединений -->
<check>
<!-- Установим интервал (в секундах) проверки активности соединений. По таймеру будут запускаться описанные далее тесты (для отключения функционала следует значение установить в "0") -->
<interval>60</interval>
<!-- Пассивный тест: устанавливаем интервал (в секундах), по истечении которого принудительно закрываются соединения, не передающие данных вообще (для отключения функционала следует значение установить в "0") -->
<idle>0</idle>
<!-- Активный тест: устанавливаем интервал (в секундах), по истечении которого по соединению не проявляющему активности будет отправлен одиночный символ; если на отправленный запрос не придёт ответа, то TCP-соединение будет закрыто (для отключения функционала следует значение установить в "0") -->
<keepalive>60</keepalive>
</check>
</io>
<!-- Настройки подсистем механизма аутентификации и доступа к реквизитам пользователей -->
<authreg>
<!-- Путь к используемым библиотекам -->
<path>/usr/local/lib/jabberd</path>
<!-- Перечень допустимых механизмов аутентификации -->
<mechanisms>
<!-- Перечень допустимых механизмов аутентификации, встроенных в XMPP-сервер Jabberd2 -->
<traditional>
<plain/>
<digest/>
</traditional>
<!-- Перечень допустимых механизмов аутентификации, поддерживаемых прослойкой SASL, с использованием которой мы скомпилировали Jabberd2 (механизмы SASL имеют приоритет выше, чем встроенные в Jabberd2, так что, на самом деле только они и используются). -->
<sasl>
<plain/>
<digest-md5/>
</sasl>
</mechanisms>
<!-- Выбираем модуль доступа к базе данных реквизитов пользователей XMPP-сервера -->
<module>mysql</module>
<!-- Настройки подключения к MySQL, для доступа к реквизитам пользователей XMPP-сервера -->
<mysql>
<host>localhost</host>
<port>3306</port>
<dbname>jabberd2</dbname>
<user>jabberd2</user>
<pass>strongPassword</pass>
<!-- Указываем хранить пароли в открытом виде, не шифруя их -->
<password_type>
<plaintext/>
</password_type>
</mysql>
</authreg>
</c2s>