Родерик Смит - Сетевые средства Linux
• время_по_умолчанию. Данное поле чрезвычайно важно. В нем указывается срок действия для тех статей, в которых отсутствует поле заголовка Expires. Подобно полю хранение, значение в данном поле указывается в днях и может быть задано как целое число или число с плавающей точкой. Значение never указывает на то, что срок действия сообщения не ограничен.
• удаление. Если значение в поле хранения позволяет увеличить срок действия, указанный в поле заголовка Expires, то значение в поле удаление позволяет лишь уменьшить его. Например, если вы зададите в данном поле значение 10 и ваш сервер получит сообщение, поле Expires которого содержит значение 100, это сообщение будет удалено через десять дней. Подобно полям хранение и время_по_умолчанию, в поле удаление может быть задано число с плавающей точкой или специальное значение never.
Обеспечение выполнения сервера новостей
Сервер INN выполняется в режиме демона и запускается посредством сценариев SysV. Если вы инсталлировали сервер новостей с помощью пакета, поставляемого в комплекте с операционной системой, вы можете непосредственно вызывать соответствующий сценарий для запуска сервера.
Некоторые описанные выше задачи демон innd не решает. К таким задачам относится передача сообщений другим серверам или удаление статей по истечении срока их действия. Для выполнения требуемых действий используются утилиты и сценарии, вызываемые с помощью инструмента cron. Если сервер поставлялся в составе операционной системы, не исключено, что crontab-файлы, необходимые для автоматического вызова требуемых утилит уже сформированы и помещены в /etc/cron.d, /etc/cron.interval или другой каталог, используемый в подобных целях. Если вы хотите, чтобы соответствующие задачи выполнялись чаще или реже, вам надо найти crontab-файлы и изменить их.
Кроме того, в процессе сопровождения приходится изменять конфигурацию сервера. Например, вам может понадобиться добавить группу новостей, удалить существующую группу или временно запретить доступ к серверу. Выполнить подобные задачи поможет утилита ctlindd, поддерживающая большое количество опций сервера. Для просмотра возможностей данной программы задайте команду ctlindd -h.
Использование Leafnode
Сервер INN обычно используется крупными провайдерами или организациями, специализирующимися на предоставлении пользователям материалов групп новостей. Как было сказано выше в данной главе, в некоторых случаях необходимо иметь небольшой сервер новостей с ограниченными возможностями для ограниченного числа групп новостей. Кроме того, часто возникает необходимость организовать работу с группами новостей в рамках локальной сети при временном отсутствии связи с Internet. Сервер, решающий такую задачу, должен за время соединения скопировать материалы некоторых групп с внешнего сервера новостей и передать на этот сервер сообщения, отправленные в эти группы локальными пользователями. Такие сеансы взаимодействия обычно производятся один-два раза в день. Желательно выбрать для этого время, когда внешний сервер не слишком загружен. Необходимые для этого действия может выполнять сервер INN, но мощность данного инструмента несоизмерима с поставленной задачей. INN взаимодействует с другими серверами новостей как равноправный партнёр, поэтому вам трудно будет найти поставщика новостей, который согласился бы планировать активность своего сервера в соответствии с графиком работы вашего сервера INN. Для решения поставленной задачи лучше использовать специальный сервер новостей с ограниченным набором возможностей. На роль подобного сервера хорошо подходит продукт Leafnode (http://www.leafnode.org).
На заметкуLeafnode — не единственный сервер, позволяющий организовать работу с группами новостей в автономном режиме. С такой задачей также хорошо справляются NNTPCache (http://www.nntpcache.org), Noffle (http://noffle.sourceforge.net), sn (http://infa.abo.fi/~patrik/sn/) и NewsCache (http://www.infosys.tuwien.ac.at/NewsCache/).
Возможности Leafnode
Подобно 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, вам придется внести в конфигурационный файл лишь незначительные изменения.