Подобно INN, функционирование продукта Leafnode обеспечивает несколько взаимодействующих между собой программ. Наиболее важные из них перечислены ниже.
•
leafnode
. Программа, реализующая сервер NNTP. Она запускается посредством суперсервера и обеспечивает взаимодействие с программой просмотра новостей, выполняющейся на том же или на другом компьютере.
•
fetchnews
. Программа, отвечающая за получение групп новостей с внешнего сервера. Для чтобы периодически получать требуемые материалы, вы можете запускать данную программу с помощью инструмента
cron
. При необходимости
fetchnews
может быть вызвана вручную
или из сценария, устанавливающего PPP-соединение.
•
texpire
. Подобно другим серверам новостей, Leafnode хранит сообщения групп в подкаталогах каталога
/var/spool/news
. Чтобы диск не переполнялся, приходится периодически удалять старые сообщения. Эту задачу решает программа
texpire
. Обычно она периодически запускается с помощью
cron
.
•
newsq
. Данная программа отображает сведения о сообщениях, отправленных в группы локальными пользователями, но еще не переданных на внешний сервер.
Leafnode осуществляет динамическую загрузку материалов групп. Если пользователь предпринимает попытку работы с группой, то при следующем запуске
fetchnews
материалы этой группы копируются с внешнего сервера. Если Leafnode обнаруживает, что в течение определенного периода времени ни один из пользователей не работал с этой группой, копирование материалов прекращается. Таким образом, у пользователей создается впечатление, что локальный сервер новостей поддерживает все группы, хотя на самом деле эту работу выполняет внешний сервер. Подобный подход к доставке данных приводит к тому, что при работе с новой группой сообщения поступают к пользователю с некоторой задержкой.
Одна из особенностей программы Leafnode состоит в том, что при ее использовании не требуется настройка для работы с источником новостей. Leafnode (если быть точным, программа
fetchnews
) взаимодействует с внешним сервером как обычная программа просмотра новостей. Благодаря этому можно организовать работу Leafnode с любым сервером новостей, например, сервером, расположенным на компьютере провайдера.
На заметку
С одной стороны, Leafnode потребляет больше ресурсов, чем обычная программа просмотра новостей, но, с другой стороны, она экономит ресурсы. Получение материалов обычной группы не занимает много времени и может осуществляться в течение одного сеанса связи с провайдером по протоколу PPP. Чтобы пользователь мог работать с группой, обычная программа просмотра новостей должна поддерживать постоянное соединение с внешним сервером. Если Internet-услуги предоставляются на условиях поминутной оплаты, Leafnode, безусловно, экономит ресурсы. В то же время Leafnode копирует все сообщения группы, даже те, которыми не заинтересуется ни один локальный пользователь. Но если с Leafnode работают несколько пользователей, которые интересуются приблизительно одинаковым набором материалов групп, общий объем переданной информации получается меньше, чем если бы каждая клиентская программа непосредственно взаимодействовала с внешним сервером.
В начале 2002 г. последней версией Leafnode была версия 1.9.19. Следующая версия (2.0) в это время находилась в стадии разработки. В версии 2.0 планируется реализовать поддержку локальных групп новостей. В версии 1.9.x такая возможность отсутствует.
Важно помнить, что продукт Leafnode разрабатывался для небольших узлов. Масштабируемость данного пакета ограничена, поэтому при обслуживании большого количества пользователей и поддержке большого числа групп новостей производительность Leafnode резко снижается. Наилучшим образом данный пакет обслуживает 20-25 пользователей. Если большая нагрузка приводит к снижению эффективности работы Leafnode, целесообразно рассмотреть возможность перехода
к использованию INN или другого полнофункционального сервера новостей.
Еще одна проблема, возникающая при работе с Leafnode, состоит в том, что данный продукт игнорирует ошибки в сообщениях. В результате в группе могут появиться статьи, которые никогда не посылали в Usenet, а существующие сообщения могут быть доставлены пользователям в искаженном виде. Специальная настройка
fetchnews
позволят частично решить данную проблему, но при этом, если внешний сервер работает ненадежно, некоторые сообщения будут утеряны.
Настройка Leafnode
Настройка пакета Leafnode сводится к настройке трех программ:
leafnode
,
fetchnews
и
texpire
. Опции, управляющие работой всех трех программ, содержатся в одном конфигурационном файле, но это не мешает настраивать каждую программу независимо от других. Если пакет Leafnode поставлялся в составе системы Linux, вам придется внести в конфигурационный файл лишь незначительные изменения.
Общие установки
Основной конфигурационный файл Leafnode называется
config
; обычно он хранится в файле /etc/leafnode. Строки данного файла, содержащие комментарии, начинаются с символа
#
. Помимо комментариев в конфигурационном файле находятся записи, представленные в следующем виде:
опция = значение
Минимальная конфигурация Leafnode предполагает наличие лишь двух опций:
server
и
expire
. Остальные опции необязательны; настраивая Leafnode, вы можете принять для них значения, заданные по умолчанию. Наиболее важные опции, присутствующие в файле
config
, описаны ниже.
•
server
. Данная опция задает имя внешнего сервера, предоставляющего материалы групп, например
server = news.abigisp.net
. Задавая несколько опций
server
, вы можете организовать получение материалов групп с нескольких серверов.
•
expire
. Эта опция указывает время (количество дней), по истечении которого сообщения будут удалены.
•
username
. Если внешний сервер требует указывать имя пользователя, его можно задать посредством данной опции.
•
password
. Если внешний сервер требует ввода пароля, эта опция позволяет задать его.
Внимание
Следует заметить, что пароль хранится в незашифрованном виде. По умолчанию файл
config
доступен только пользователю root, поэтому опасность того, что пароль будет похищен и использован для незаконного доступа к серверу, относительно невелика. Однако по сети этот пароль также передается в незакодированном виде, поэтому его не следует использовать для других целей.
•
port
. Большинство серверов новостей использует по умолчанию порт 119. Данная опция позволяет вам указать другой порт.
•
nodesc
. Как правило, серверы новостей предоставляют описания групп, однако некоторые серверы не обеспечивают такой возможности. Наилучшим образом Leafnode работает в том случае, если в конфигурационном файле указана опция
nodesc = 1
.
•
timeout
. При соединении с сервером новостей программа
fetchnews
обычно выжидает десять секунд, а затем прекращает попытки. Данная опция позволяет изменить значение тайм-аута.