|
Linux - общее знакомствоОсновной файл настройки сервера — jabber.xml. Формат этого файла — XML, поэтому его можно редактировать в любом текстовом редакторе. Удобно использовать для этого редакторы XML, например, kxmleditor, emacs или vi с подсветкой синтаксиса. Часть настроек в этом файле можно переопределять опциями командной строки при запуске сервера. Для этого значение тега, которое нужно переопределить, берётся ещё и в дополнительный тег jabberd:cmdline. В атрибуте flag нужно указать букву, соответствующую опции командной строки. Можно вынести настройки из основного файла во включаемые файлы, например, для удобства настройки сервисов. Для включения таких файлов используется тег jabberd:include. Структура файла конфигурации доступна в Приложение A. Структура jabber.xml. ЗамечаниеВ файле jabber.xml нет объявления XML, в котором можно было бы указать кодировку, поэтому сервер считает, что весь текст в кодировке UTF-8. ЗамечаниеВ указании тегов jabberd:cmdline и jabberd:include нет указания пространства имён jabberd. Это нарушает спецификации XML, что нужно учитывать при создании файла конфигурации с помощью программ для работы с XML. ПодсказкаЕсли после редактирования с помощью kxmleditor сервер Jabber не запускается с сообщением The host tag contains illegal whitespace. нужно убрать в файле jabber.xml все разделители между тегом host и jabberd:cmdline, а также все разделители внутри тега spool. В дистрибутивах от ALT Linux Team файлы конфигурации находятся в каталоге /etc/jabber. Основные настройки вынесены в файл /etc/jabber/jabber.cfg. Переменные jabber.cfg:
Содержание
Сервер jabberd содержит несколько важных компонент, необходимых для его работы. В эти компоненты входят внутренние сервисы, ведение логов, управление соединениями. Все эти компоненты описаны в файле конфигурации сразу под корневым тегом:
После разделов внутренних компонент указываются настройки дополнительных транспортов и сервисов jadc2s — это компонента управления клиентскими соединениями и может использоваться вместо компоненты pthsock_client. Эта компонента позволяет обслуживать большое количество (больше 10 тысяч) входящих соединений одновременно, по сравнению с pthsock_client (~1024). Идея состоит в том, что можно запустить несколько компонент для обслуживания соединений, привязав их к разным портам. После начальной обработки соединений (например, авторизации) компонента пересылает соединения компоненте управления сессиями. В данный момент реализация внешней части обработки соединений вынесена в отдельную программу и должна запускаться отдельно. Содержание
Karma — численное значение, выражающее “кредит” соединению на объём пересылаемых байт в ближайший короткий период времени. В общих словах, карма постепенно возрастает до некоторого максимума, если соединение не выходит за дозволенную скорость передачи, и убывает, когда предел начинает превышаться, постепенно ограничивая тем самым пропускную способность. Количество байтов, которые могут быть считаны из сокета в течение шага восстановления кармы, определяется как значение кармы, умноженное на 100. ЗамечаниеДля компоненты jadc2s ограничение пропускной способности настраивается проще, в теге max_bps. Алгоритм расчёта кармы управляется шестью параметрами, вложенными в элементы karma конфигурации различных соединений в конфигурации сервера: <karma> <heartbeat>2</heartbeat> <init>10</init> <max>10</max> <inc>1</inc> <dec>1</dec> <penalty>-6</penalty> <restore>10</restore> </karma>
Количественные характеристики, более доступные человеческому пониманию, выводятся из этих величин следующим образом: Средняя пропускная способность, достижимая без понижения кармы — до ( max * 200 / heartbeat ) Байт/c Максимальное количество байт, которое может быть передано за heartbeat — примерно (r + 1) * max * 100 / 2, r = floor(max / dec) Время блокировки после “зашкаливания” — abs(penalty) * heartbeat У сервера есть несколько предопределённых ключей:
Также есть возможность настроить ключи командной строки для любого тега, чтобы переопределять его значение при запуске. Для этого используется тег jabberd:cmdline . Система Jabber позволяет подключать дополнительные сервисы и транспорты, расширяющие функциональность сервера. Для доступа пользователей к сервисам в теге browse должен быть указаны соответствующие агенты. Агенты могут предоставлять доступ не только к локальным сервисам, но и к сервисам на других серверах, например, к общему каталогу (JUD) пользователей на сервере jabber.org. Для работы локальных сервисов должны быть настроены соответствующие разделы в файле конфигурации. В дистрибутивах от ALT Linux Team конфигурация сервисов хранится в отдельных файлах, включаемых тегом jabberd:include. Например, для подключения транспорта ICQv7-t нужно установить пакет jabber-icqv7-t и отредактировать файлы в каталоге /etc/jabber/include, начинающиеся с icqv7-t. Также должен быть включен запуск внешней части ICQv7-t транспорта в файле jabber.cfg. ЗамечаниеЕсли к локальному сервису будут подключаться пользователи других Jabber-серверов, JID этого сервиса должен иметь соответствующую запись в DNS. Если к сервису подключаются только локальные пользователи, записи в DNS не нужны. |